在tomcat 中调用远程EJB
? ? ? 目前做跟JavaEE, Spring ,JSF and ?Hibernate有关的一个Web项目。在开发的时候开发人员用到Tomcat 做开发调试, 他们喜欢这么做是因为主要是Web , JSF 相关的开发, Tomcat 够轻量, 可以在Eclipse 里面很方便的集成 。但是问题来了, ?需要用到一个远程的EJB。 其实远程调用EJB 也很简单 无非是 创建一个 InitialContext, ?然后根据EJB的JNDI 做 lookup ?。我写了给一个unit tes, 代码如下:
?
? ?@Test
@Testpublic void testJ2ee() {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:com/bwang/ejb/remote/CoverageWeb.spring.xml");ConditionExtService conditionExtService = (ConditionExtService) context.getBean("conditionExtService");ConditionExt conditionExt = conditionExtService.getCondition(315); System.out.println(conditionExt.getConditionName());}
?
一样的错误, ?放狗 搜索下 得到得提示大概是 spring ?版本太老blabla... 。 赶紧将我的unit test 的代码更新到2.5.5, unit test ?绿了。?
?
查看项目中的 Spring.jar ?是 ?2.5.4 ,同样更新 Spring 版本, 重新build , 启动Tomcat ?一切OK。
?
总结如下 :
?
? 1, ?如果需要调用 远程 EJB, 使用 glass fish client 和 ?javaee 的 api 两个jar 就可以搞定。?
?
? 2, ?如果用到?jee:remote-slsb , 貌似需要 spring 2.5.5 以上。
?
?