Herman.gu
Herman.gu

Reputation: 13

When moving project of EJB 2.0 from JBoss 4.0 to TomEE,It occurs errors

When I move the project from JBoss 4.0 to TomEE,It occurs errors! Here is some piece of my ejb-jar.xml:

<ejb-jar >

  <!-- Session Beans -->
  <session >
     <description><![CDATA[<p> RiskAssessmentRouter Manager Bean </p>]]></description>

     <ejb-name>RiskAssessmentRouterManagerBean</ejb-name>

     <home>com.spokesoft.component.riskassessmentrouter.ejb.RiskAssessmentRouterManagerHome</home>
     <remote>com.spokesoft.component.riskassessmentrouter.ejb.RiskAssessmentRouterManager</remote>
     <ejb-class>com.spokesoft.component.riskassessmentrouter.ejb.RiskAssessmentRouterManagerBean</ejb-class>
     <session-type>Stateless</session-type>
     <transaction-type>Container</transaction-type>

     <env-entry>
        <env-entry-name>daoType</env-entry-name>
        <env-entry-type>java.lang.Integer</env-entry-type>
        <env-entry-value><![CDATA[1]]></env-entry-value>
     </env-entry>
     <env-entry>
        <env-entry-name>dbNamespace</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value><![CDATA[null]]></env-entry-value>
     </env-entry>

     <resource-ref >
        <res-ref-name>SrsData</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
     </resource-ref>

  </session>
</enterprise-beans>

When the TomEE starts, This error appeared:

com.spokesoft.component.service.ServiceException: Name [RiskAssessmentRouterManagerBean] is not bound in this Context. Unable to find [RiskAssessmentRouterManagerBean].
at com.spokesoft.component.service.RiskAssessmentRouterDelegate.handleException(RiskAssessmentRouterDelegate.java:178)
at com.spokesoft.component.service.RiskAssessmentRouterDelegate.findServices(RiskAssessmentRouterDelegate.java:78)
at com.spokesoft.http.servlet.service.RiskAssessmentRouterManager.initServices(RiskAssessmentRouterManager.java:345)
at com.spokesoft.http.servlet.service.RiskAssessmentRouter.init(RiskAssessmentRouterManager.java:138)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:622)
at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:591)
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:855)
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:612)
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:608)
at org.apache.tomee.catalina.TomcatWebAppBuilder.checkHost(TomcatWebAppBuilder.java:1973)
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1374)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
at java.lang.Thread.run(Thread.java:722)

In the code:

 Context ctx = new InitialContext();

Object o = ctx.lookup("RiskAssessmentRouterManagerBean");

Is my ejb-jar.xml problem or some other configuration problems, or I missed some important configuration? I don't know why ,Can anybody help me resolve this problem?Thank you very much,

Upvotes: 0

Views: 267

Answers (1)

Steve C
Steve C

Reputation: 19445

You almost certainly cannot use the same JNDI names in TomEE that you were using in JBoss 4.0. The old J2EE specifications did not standardise global JNDI names, so migrating between vendors could be a big job. Java EE 6 and newer has standardised these names.

All versions of WildFly kindly log the standardised names when your application starts up. Maybe TomEE does the same thing.

If not, you can deduce them by reading up on them in §5 of the Java EE specification document.

Upvotes: 1

Related Questions