OpenEjb + EJB3的部署

OpenEjb是一个轻量级的EJB发布容器,可以将EJB放在TOMCAT中运行。

1.首先下载OpenEjb,去官方网下载的是一个openejb.war.

2.我是部署在tomcat6中的,将该war包解压,解压后,产生一个openejb的文件夹。

3.将该文件夹放到tomcat/webapp/目录下,作为一个项目发布。

4.启动tomcat

5.启动以后,输入http://127.0.0.1:8080/openejb/

出现如下信息:

OpenEJB and Tomcat Integration Page

Welcome to the OpenEJB/Tomcat integration!

Now that OpenEJB has been installed, click on the "Testing your setup" link below to verify it. When everything is setup well, feel free to play around with the tools provided below!

Setup
Testing your setup

Install
[Optional] Install Listener

Tools
OpenEJB JNDI Browser
OpenEJB Class Viewer
OpenEJB EJB Viewer
OpenEJB Object Invoker

 

点击[Optional] Install Listener 意思是将OpenEjb的JAR包加入到tomcat中

  OpenEJB Index JNDI EJB Class Invoke
   



OpenEJB Installer


Tomcat Listener Installed NO
JavaAgent Installed YES


Please verify the file paths are correct and click the install button.

Catalina Home:
Catalina Base:
Catalina server.xml:

点击install 完成安装

6.你可以在你的IDE中新建一个web工程【注意一定要是一个WEB工程】

在该项目中新建两个类

package test;

import javax.ejb.Remote;

@Remote
public interface HelloTuping {
 public String sayHello(String name);
}

package test;

import javax.ejb.Stateless;

@Stateless
public class HelloTupingImpl implements HelloTuping {
 public HelloTupingImpl(){}
 public String sayHello(String name) {
  // TODO Auto-generated method stub
  return "hello!"+name;
 }

}

然后将该工程部署到tomcat中,OpenEjb会自动的将该工程发布成EJB工程。

你可以在:http://127.0.0.1:8080/openejb/viewjndi.jsp

的 "JNDI"中找到你发布的JNDI的名称。

 

这样服务端的EJB就发布成功了。

 

 

编写客户端:

首先新建一个工程,然后倒入openejb目录下lib目录下的:

openejb-client-3.1.4.jar

javaee-api-5.0-3.jar

 

新建客户端的JAVA文件:

import java.util.Properties;

import javax.naming.InitialContext;

import com.boss.search.ISearchService;


public class Client {

 public static void main(String[] args) {
  try {
   Properties props = new Properties();
   props.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
   props.put("java.naming.provider.url", "http://192.168.61.135:8080/openejb/ejb");
   InitialContext ctx = new InitialContext(props);
     HelloTuping ss = (HelloTuping) ctx.lookup("HelloTupingImplRemote");
   //红色部分你可以在http://127.0.0.1:8080/openejb/viewjndi.jsp找到你所发布的EJB程序,然后填写对应的名字。
   System.out.println(ss.sayHello("hello"));
   
   
   
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

 

客户端返回:hello!hello:

表示调用成功。

 

 

在部署过程中要注意一点:

在你的tomcat目录:

E:\tomcat6new\apache-tomcat-6.0.29\conf\Catalina\localhost

找到openejb.xml文件。

然后里面内容:

<Context>
  <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.*.*,127\.0\.0\.1,0:0:0:0:0:0:0:1(%.*)?" deny=""/>
</Context>

 

allow :表示的意思是OPENEJB被允许外地IP地址。

像我如上这种配置方式,表示127.0.0.1和192.168.*.*段的IP地址可以调用访问EJB

你可能感兴趣的:(apache,tomcat,jsp,javaee,ejb)