目前Embedded EJB3的最新版本是alpha9,但是这个最新版本有一个最大的bug就是无法再Tomcat中运行。当然还有其他很多bug,毕竟目前还只是alpha版本。所以我选择的是前一版本alpha8.
Embedded EJB3运用了目前动态AOP的方式。在Tomcat启动时通过web.xml中的设置动态加载Ejb3的Listener。同时还允许通过URL实现动态部署EJB3。就是意味着只要有Embedded Ejb3就可以在任何容器中运行EJB3。
可惜还没有正式版本的诞生,bug很多。期待中...在jboss中我们可以在eclipse中直接通过以下代码来调用运行中的EJB3 Service.
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 = new InitialContext(props);
Object obj = ctx.lookup("HelloWorldBean/remote");
但是在Embedded EJB3版本中它的客户端的properties与jboss中的不同变为:
props.put("java.naming.factory.initial", "org.jnp.interfaces.LocalOnlyContextFactory");
props.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
我在tomcat中运行我的Embedded Ejb3。使用jsp客户端可以调用EJB3。
但是在eclipse中直接以上写入客户代码却throw Exception意味着Embedded EJB3只能在服务器能调用?不支持直接的java代码调用?
从客户端的properties中可以看出embed版本去除了url这一项,并且把factory改为了LocalOnlyContextFactory,从这名字上去理解就是只允许本地容器内调用。
发表于 @
2006年12月19日 10:17:00 | | 编辑|
举报| 收藏