我有一个WebApp,在不同的安装中使用tomcat和openejb。我正试图将其移动到TomEE (web配置文件/plus)环境,我遇到查找错误。JNDIContext抛出java.lang.NullPointerException.
我先试了w/TomEE web profile。我的web应用程序也使用web服务,谷歌搜索让我尝试TomEE plus,因为web配置文件不支持web服务。这个版本也不走运。
两个版本之间的一个区别是,在TomEE web配置文件中,当我访问openejb web应用程序时,我看到了所有的远程对象。但是,我没有看到它们与/TomEE +版本。
http://localhost: 8080/openejb viewjndi.jsp
有什么建议可以解决这个问题吗?我猜是配置问题,我不知道是哪一个。
下面是完整的堆栈跟踪:java.lang.NullPointerException
org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:203)
org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:247)
javax.naming.InitialContext.lookup(InitialContext.java:392)
org.bluebox.customer.client.CustomerConnection.getCustomerAccountRemote(CustomerConnection.java:67)
org.bluebox.customer.client.CustomerLogin.prepare(CustomerLogin.java:65)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:167)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
如果从OpenEJB/Tomcat安装迁移,TomEE Plus绝对是正确的发行版。它们在特性上是相同的,不同之处在于堆栈现在支持完整的EJB 3.1、JAP 2.0和JAX-RS。TomEE的WebProfile版本精简了很多,缺少WebServices、JMS和任何非webprofile的需求。以下是支持的api的简要比较。
这看起来像是在1月份发布的TomEE 1.0.0-beta-2中修复的错误。如果你能试一试,那就太好了。我们绝对希望确保在1.0.0 GA之前您可能面临的任何问题都得到解决。