学习了下EJB,练习了如何在JBoss中调用EJB。
然后是学习Tomcat中的Web工程调用JBoss的EJB。
环境:
tomcat6+Jboss4.2.2GA
首先在Eclipse里建立一个java工程。
然后建立两个文件
HelloWorld.java
package com;
public interface HelloWorld {
public String SayHello(String name);
}
HelloWorldBean.java
package com;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote ({HelloWorld.class})
public class HelloWorldBean implements HelloWorld {
public String SayHello(String name) {
// TODO Auto-generated method stub
return name +" is the first remote EJB";
}
}
把jboss下的jboss-ejb3x.jar放到该工程的classpath里。
然后打包成HelloWorld.jar
部署到C:\jboss-4.0.4.GA\server\all\deploy目录下。
可以看到jboss console里会打印出来。
然后再建立一个web工程。
TestHello
建立一个index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>The first EJB</title>
</head>
<body>
<%
java.util.Properties props = new java.util.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");
javax.naming.InitialContext ctx;
try{
ctx=new javax.naming.InitialContext(props);
com.HelloWorld helloworld=(com.HelloWorld)ctx.lookup("HelloWorldBean/remote");
out.println(helloworld.SayHello("Michael"));
}catch(javax.naming.NamingException e){
e.printStackTrace();
}
%>
</body>
</html>
把这6个jar:jboss-aop-jdk50.jar,
jboss-aspect-library-jdk50.jar,
jboss-ejb3.jar,
jboss-remoting.jar,
jbossall-client.jar.放到工程的classpath里。
然后打包成TestHello.war。
部署到Tomcat里
然后运行 可以得到这个结果在界面
Michael is the first remote EJB
窗体顶端