EJB最简单demo搭建

前言:一直想学那些大神写博客,可也不会什么东西写不出什么东西。但下定决心不能让自己这么水下去了,所以每天写点东西记录自己所学到的一点一滴,记录自己的成长。以此督促自己不断的成长。

  EJB入门demo的搭建:
  1.安装jboss。本来想下载安装一个最新版本的jboss,结果。。。哎,不会弄,所以,好吧,最后下了一个jboos 5.0.0GA版本。配置一下环境变量,就可以用了。用控制台运行run.bat。。。。

  2.本来用eclipse的jboss插件的。结果~~也是一波三折,结果也是没有成功,因为我的eclipse没有jboss的选项,完全不能部署啊,我也是醉了。。。最后用了myeclipse。在window->Preferences->Myeclipse->Servers->JBoss->JBoss 5.X 设置成Enable,并配置路径。jdk设置后成1.6。OK。

  3.HelloWorld入门:

  新建EJB项目。

  新建com.ejb包。在包中创建Session Bean组件:选项都为默认。可以得到两个类:HelloWorld.java和HelloWorldRemote.java,分别为Session Bean的实现类和远程接口类。自己写一个简单的方法,实现输入一个字符串,返回欢迎信息。

远程接口类HelloWorldRemote.java

package com.ejb;

import javax.ejb.Remote;

@Remote
public interface HelloWorldRemote {
    public String sayHello(String world);
}

实现类HelloWorld.java

package com.ejb;

import javax.ejb.Stateless;

@Stateless
public class HelloWorld implements HelloWorldRemote {

    public String sayHello(String world) {
        return "Hello," + world;
    }

}

  4.将这个EJB项目打包,打成jar包,并把jar包放入jboss的jboss-5.0.0.GA\server\default\deploy目录下,启动jboss。可以得到

  5.编写Java类进行测试——HelloworldClient.java

  新建一个java工程,在其中新建一个包:com.ejb,包中放入上面写的HelloWorldRemote.java类,然后在其他包中新建一个java测试类,代码如下:

import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.ejb.HelloWorldRemote;

public class HelloWorldClient {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Properties props = new Properties();
        props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        props.setProperty("java.naming.provider.url", "localhost:1099");
        props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
        try{
            InitialContext ctx = new InitialContext(props);
            HelloWorldRemote helloWorld = (HelloWorldRemote) ctx.lookup("HelloWorld/remote");
            System.out.println(helloWorld.sayHello("World"));
            System.out.println(helloWorld.sayHello("China"));
        }catch (NamingException e){
            e.printStackTrace();
        }
    }

}

在这个EJBTestJava项目中导入jboss-5.0.0.GA\client下的jbossall-client.jar

  项目结构如下:

  在jboss启动的前提下,运行测试类HelloWorldClient.java。可以得到

  6.编写JSP测试——helloworld.jsp

  新建一个web项目,在其中编写jsp文件

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.Properties" %>
<%@page import="javax.naming.InitialContext" %>
<%@page import="javax.naming.NamingException" %>
<%@page import="com.ejb.HelloWorldRemote" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>测试页面</title>
</head>
<body>
<%
    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    props.setProperty("java.naming.provider.url", "localhost:1099");
    props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
    try{
        InitialContext ctx = new InitialContext(props);
        HelloWorldRemote helloWorld = (HelloWorldRemote) ctx.lookup("HelloWorld/remote");
        out.println(helloWorld.sayHello("World"));
        out.println(helloWorld.sayHello("China"));
        out.println(helloWorld.sayHello("Chai"));
    }catch (NamingException e){
        e.printStackTrace();
    }
 %>
</body>
</html>

在这个项目中新建一个包:com.ejb,包中放入上面写的HelloWorldRemote.java类,并导入两个包:一个是jboss-5.0.0.GA\client下的jbossall-client.jar,一个是刚才发布的EJBTest.jar

  项目结构如下:

  把此项目打包成war包(据说要把web-inf底下的lib目录删除,不知道是不是真的有影响,反正我删了= =),放入jboss-5.0.0.GA\server\default\deploy中,运行jboss。(这一步折腾我好久。。。直接用mecelipse运行jboss来运行这个测试类,一直不行,不知道为什么。)

  jboss起来之后,访问http://localhost:8080/EJBTestJSP/helloworld.jsp 可以的得到

  如此,HelleWorld入门demo就完成了。(人笨,哎,折腾的好蛋疼)。。。

 

posted on 2015-11-15 22:01  Sampwood  阅读(1150)  评论(0)    收藏  举报

导航