项目开发环境:
eclipse (Version:Luna Service Release 1 (4.4.1))
Jboss-eap-6.2
JDK1.8.0
创建EJB项目:
File—>new—>EJB Project
接下来,右击ejbModule创建一个sessionbean。
首先,创建一个远程调用的会话bean,默认无状态。
在HelloEJBBean接口中编写sayHello方法
package com.ejb;
import javax.ejb.Remote;
@Remote
public interface HelloEJBBean {
public String sayHello(String name);
}
编写实现类:
package com.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;
/**
* Session Bean implementation class HelloEJB
*/
@Stateless
@Remote
public class HelloEJB implements HelloEJBBean {
@Override
public String sayHello(String name) {
return name+"HelloFKG";
}
}
好了,一个简单的ejb就完成啦,接下来就是要导出ejb jar了,以支持客户端的调用。
右击项目——>Exprot——>EJB JAR file,设置jar的名字及路径即可。
接下来就是要编写一个测试的客户端程序:
新建Java Project
配置jndi,编写jndi.properties配置文件(该文件放到classpath路径下)
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost
接下来,编写测试类:
public class ejbTest {
public static void main(String[] args) throws Exception {
InitialContext ctx = new InitialContext();
HelloWorld ejb = (HelloWorld)ctx.lookup("HelloEJBBean/Remote");
String s = ejb.sayHello("baby");
System.out.println(s);
}
}
效果如下:
好啦,到这里为止,第一个ejb项目就完成啦。
学习小结:
其实小编在这过程中,并非一帆风顺的,中间遇到了一些因为版本不兼容而带来的困扰,好在度娘很强大~
错误一:
一开始小编用的jboss版本是7.1,启动JBOSS的时候,会卡在“JBAS015899: JBoss AS 7.1.1.Final “Brontes” starting”的阶段,无法继续。这是因为,jdk1.8不支持jboss7.1。
小编从这里找到了答案:http://d-prototype.com/archives/79
错误二:
Failed to define classcom.ejb.HelloWorld in Module "deployment.ejb01.jar:main"
java.lang.UnsupportedClassVersionError:com/ejb/HelloWorld : Unsupported major.minor version 52.0
这是因为,小编在修改完eclipse默认的jdk之后,忘记修改项目编译时jdk的支持版本。即项目右键—>Java Compiler,修改到与项目匹配的jdk版本,重新编译执行即可。