2

Tomcat と openejb を別々のインストールで使用する WebApp があります。これを TomEE (Web プロファイル / プラス) 環境に移行しようとしていますが、ルックアップ エラーが発生しています。JNDIContext が java.lang.NullPointerException をスローしています。

最初にTomEE Webプロファイルで試しました。私の webapp も web サービスを使用しており、web プロファイルが web サービスをサポートしていないため、Google 検索で TomEE plus を試してみることにしました。このバージョンでも運はありません。

2 つのバージョンの違いの 1 つは、TomEE Web プロファイルでは、openejb Web アプリケーションにアクセスすると、すべてのリモート オブジェクトが表示されることです。ただし、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)
4

1 に答える 1

2

OpenEJB/Tomcat インストールから移行する場合は、間違いなく TomEE Plus を使用するのが適切なディストリビューションです。これらは、スタックが完全な EJB 3.1、JAP 2.0、および JAX-RS をサポートするようになったという違いを除いて、機能がまったく同じです。TomEE の Web Profile バージョンはかなりスリムで、WebServices、JMS、および WebProfile 以外の要件がありません。サポートされている APIの簡単な比較を次に示します。

これは、1 月にリリースされた TomEE 1.0.0-beta-2 で修正されたバグのようです。試してみることができれば、それは素晴らしいことです。1.0.0 GA の前に、直面する可能性のある問題を確実に解決したいと考えています。

于 2012-02-08T21:09:58.520 に答える