1. 新建EJB项目EjbService,即 new---->EjbProject---->
由于本例子中不需要用到EntityBean,所以把Add support for beans(add JPA capabilities)的勾去掉,再点Finish。
2. 新建一个HelloWorld接口,代码如下:
package org.ejb;
import javax.ejb.Remote;
@Remote
public interface HelloWorld{
public String sayHello(String name);
}
3. 新建一个HelloWorldBean类,代码如下:
4. package org.ejb;
import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorld{
public StringsayHello(String name) {
return name+":hello World!";
}
}
5. 将项目部署到jboss中,并启动jboss,控制台会输出有如下文字:
22:46:33,105 INFO [JBossASKernel] jndi:HelloWorldBean/remote-org.ejb.HelloWorld
22:46:33,105 INFO [JBossASKernel] jndi:HelloWorldBean/remote
说明HelloWorldBean已绑定到jndi的HelloWorldBean/remote上了,以后只要访问名字HelloWorldBean/remote就可以访问到HelloWorldBean资源
6. 编写客户端来访问资源
新建一个Client的web project,在index.jsp中加入如下代码
<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");
InitialContext ctx;
try {
ctx = new InitialContext(props);
HelloWorld helloworld = (HelloWorld) ctx
.lookup("HelloWorldBean/remote");
out.println(helloworld.sayHello("ejb"));
} catch (NamingException e) {
e.printStackTrace();
}
%>
</body>
并引入javax.naming包,此时代码会报错,因为找不到HelloWorld接口,此时用myeclipse的export-àjarfile将服务端的程序打成jar包加入到客户端,引入包就ok了。
7. 打开浏览器,输入地址:http://localhost:8080/Client/index.jsp
结果如下:
大功造成。