2017-12-11 46 views
0

JBoss 4.0에서 TomEE로 프로젝트를 이동할 때 오류가 발생합니다!EJB 2.0의 프로젝트를 JBoss 4.0에서 TomEE로 이동할 때 오류가 발생합니다.

<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> 

TomEE가 시작 , 이 오류가 나타나 다음에

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) 

여기 내 EJB-jar.xml의 일부 조각 코드 :

Context ctx = new InitialContext(); 

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

내 ejb-jar.xml 문제 또는 다른 구성 문제입니까? 아니면 중요한 구성을 놓쳤습니까? 왜이 문제를 해결할 수있는 사람이 있습니까? 감사합니다.

답변

1

JBoss 4.0에서 사용하던 TomEE에서 동일한 JNDI 이름을 사용하는 것은 거의 확실합니다. 이전의 J2EE 사양은 글로벌 JNDI 이름을 표준화하지 않았으므로 공급 업체 간 마이그레이션은 큰 일일 수 있습니다. Java EE 6 이상에서는 이러한 이름을 표준화했습니다.

WildFly의 모든 버전은 응용 프로그램이 시작될 때 표준화 된 이름을 친절하게 기록합니다. 어쩌면 TomEE도 똑같은 일을 할지도 모른다.

그렇지 않은 경우 Java EE 사양 문서의 §5에서 해당 내용을 읽을 수 있습니다.

+0

TomEE는 실제로 시작할 때 이름을 로그에 남깁니다. –