我有一个在单独的安装中使用tomcat和openejb的WebApp。我正在尝试将其移至TomEE(web profile / plus)环境,并且我遇到了查找错误。 JNDIContext抛出java.lang.NullPointerException。
我首先尝试了TomEE网络个人资料。我的webapp也使用网络服务和谷歌搜索引导我尝试TomEE plus,因为网络配置文件不支持Web服务。没有这个版本的运气。
两个版本之间的一个区别是,在TomEE Web配置文件中,当我访问openejb webapp时,我会看到所有Remote对象。但是我没有看到它们带有TomEE plus版本。
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)
答案 0 :(得分:2)
如果从OpenEJB / Tomcat安装迁移,TomEE Plus绝对是正确的发行版。它们在功能上完全匹配,但堆栈现在支持完整的EJB 3.1,JAP 2.0和JAX-RS。 TomEE的Web Profile版本相当精简,缺少WebServices,JMS和任何非WebProfile要求。这是一个简短的comparison of APIs supported。
这看起来像是在1月发布的TomEE 1.0.0-beta-2修复的错误。如果你可以尝试一下,那就太棒了。我们绝对希望确保在1.0.0 GA之前清除您可能遇到的任何问题。