2013-03-11 1 views
2

WebSphere 8의 임베디드 EJB 컨테이너를 사용하여 JUnit4를 사용하여 EJB 용 유닛 테스트를 작성하고 있습니다. 내가 클래스 COM/IBM과 항아리를 찾을 수 없습니다WebSphere 8의 embeddable EJB 컨테이너를 생성 할 수 없습니다 - NoClassDefFoundError HpelHelper

java.lang.NoClassDefFoundError: com/ibm/ejs/ras/hpel/HpelHelper 
at com.ibm.ejs.ras.RasHelper.getThreadId(RasHelper.java:1760) 
at com.ibm.ejs.ras.RasEvent6$1.initialValue(RasEvent6.java:101) 
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:152) 
at java.lang.ThreadLocal.get(ThreadLocal.java:142) 
at com.ibm.ejs.ras.RasEvent6.<init>(RasEvent6.java:292) 
at com.ibm.ejs.ras.MessageEvent6.<init>(MessageEvent6.java:203) 
at com.ibm.ejs.ras.Tr.fireMessageEvent(Tr.java:1555) 
at com.ibm.ejs.ras.Tr.warning(Tr.java:1207) 
at com.ibm.ws.naming.java.javaNameSpaceImpl.localNameSpaceInit(javaNameSpaceImpl.java:347) 
at com.ibm.ws.naming.java.javaNameSpaceImpl.init(javaNameSpaceImpl.java:267) 
at  com.ibm.ws.naming.java.javaURLInitialContextFactory.getInitialContext(javaURLInitialContextFactory.java:156) 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:247) 
at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:318) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:348) 
at javax.naming.InitialContext.internalInit(InitialContext.java:286) 
at javax.naming.InitialContext.<init>(InitialContext.java:211) 
at com.ibm.ejs.csi.DefaultComponentMetaData.initializeJavaNameSpace(DefaultComponentMetaData.java:150) 
at com.ibm.ejs.csi.DefaultComponentMetaData.<init>(DefaultComponentMetaData.java:122) 
at com.ibm.ejs.csi.DefaultComponentMetaData.<clinit>(DefaultComponentMetaData.java:94) 
at java.lang.J9VMInternals.initializeImpl(Native Method) 
at java.lang.J9VMInternals.initialize(J9VMInternals.java:228) 
at com.ibm.ws.threadContext.ComponentMetaDataAccessorImpl.<init>(ComponentMetaDataAccessorImpl.java:59) 
at com.ibm.ws.threadContext.ComponentMetaDataAccessorImpl.<clinit>(ComponentMetaDataAccessorImpl.java:54) 
at java.lang.J9VMInternals.initializeImpl(Native Method) 
at java.lang.J9VMInternals.initialize(J9VMInternals.java:228) 
at com.ibm.ws.threadContext.JavaNameSpaceAccessorImpl.<init>(JavaNameSpaceAccessorImpl.java:56) 
at com.ibm.ws.threadContext.JavaNameSpaceAccessorImpl.<clinit>(JavaNameSpaceAccessorImpl.java:48) 
at java.lang.J9VMInternals.initializeImpl(Native Method) 
at java.lang.J9VMInternals.initialize(J9VMInternals.java:228) 
at com.ibm.websphere.ejbcontainer.EmbeddableContainer.initNaming(EmbeddableContainer.java:353) 
at com.ibm.websphere.ejbcontainer.EmbeddableContainer.initialize(EmbeddableContainer.java:454) 
at com.ibm.websphere.ejbcontainer.EmbeddableContainer.open(EmbeddableContainer.java:428) 
at com.ibm.websphere.ejbcontainer.EmbeddableContainer.newContainer(EmbeddableContainer.java:382) 
at com.ibm.websphere.ejbcontainer.EmbeddableContainerProvider.createEJBContainer(EmbeddableContainerProvider.java:75) 

:



    Map properties = new HashMap(); 
    properties.put(EJBContainer.PROVIDER, 
       "com.ibm.websphere.ejbcontainer.EmbeddableContainerProvider"); 
    EJBContainer ec = EJBContainer.createEJBContainer(properties); 
 

나는 NoClassDefFoundError를 얻을 : 내 IDE는 RAD 8

여기

내 간단한 테스트 코드 조각입니다/ejs/ras/hpel/HpelHelper 어디서나.

C:\workspaces\irad8\JSF2.0Test\MyEJBPrj\ejbModule; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.wccm.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.emf.jar; 
C:\Program Files\IBM\WebSphere\AppServer\dev\JavaEE\6.0\j2ee.jar; 
C:\Program Files\IBM\WebSphere\AppServer\lib\mail-impl.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.runtime.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.ejbportable.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.admin.core.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.admin.services.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.portletcontainer.jar; 
C:\Program Files\IBM\WebSphere\AppServer\lib\bootstrap.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.sib.server.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.sip.container.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.sip.interface.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.jsf.myfaces.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.webcontainer.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.wsadie\marshall.jar; 
C:\Program Files\IBM\WebSphere\AppServer\lib\ffdcSupport.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.wsadie\wsatlib.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.runtime.dist.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mq.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mq.headers.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mq.pcf.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mq.jmqi.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mq.connector.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mq.commonservices.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\dhbcore.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.eclipse.emf.common.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.eclipse.emf.commonj.sdo.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.eclipse.emf.ecore.change.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.eclipse.emf.ecore.sdo.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.eclipse.emf.ecore.xmi.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.eclipse.emf.ecore.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.wsdl4j.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.wsfp.main.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.jackson.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.xlxp.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.jaxrs.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\javax.j2ee.jaxrs.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.jaxrs.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.vajava.jar; 
C:\Program Files\IBM\WebSphere\AppServer\lib\rsadbutils.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.jpa.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.commonj-twm.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.prereq.soap.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\org.apache.tuscany.sca.api.jar; 
C:\Program Files\IBM\WebSphere\AppServer\dev\sca\1.0\sca_api.jar; 
C:\Program Files\IBM\WebSphere\AppServer\dev\xml\xmlapi.jar; 
C:\Program Files\IBM\WebSphere\AppServer\plugins\com.ibm.ws.batch.runtime.jar; 
C:\Program Files\IBM\WebSphere\AppServer\tivoli\tam\PD.jar; 
C:\Program Files\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm.mqjms.jar; 
C:\Program Files (x86)\IBM\SDPShared\plugins\org.junit_4.8.1.v4_8_1_v20100427-1100\junit.jar; 
C:\Program Files (x86)\IBM\SDPShared\plugins\org.hamcrest.core_1.1.0.v20090501071000.jar; 
C:\Program Files\IBM\WebSphere\AppServer\runtimes\com.ibm.ws.ejb.embeddableContainer_8.0.0.jar; 
/C:/Program Files/IBM/SDP/configuration/org.eclipse.osgi/bundles/1486/1/.cp/; 
/C:/Program Files/IBM/SDP/configuration/org.eclipse.osgi/bundles/1484/1/.cp/; 
/C:/Program Files/IBM/SDP/configuration/org.eclipse.osgi/bundles/1485/1/.cp/ 
+0

RAS 장치는 HPEL을 사용하지 않고는 WebSphere 임베드 EJB 컨테이너에 포함되어 있습니다. 이 오류 메시지는 클래스 경로의 일부 JAR이 다른 RAS를 사용 중임을 나타냅니다. JVM 클래스 패스는 어떻게 생겼습니까? 아마도'createEJBContainer'를 호출하기 전에'System.getProperty ("java.class.path")'를 출력하십시오. –

+0

클래스 경로 정보를 추가했습니다. – Tornado01

+0

'C : ₩ Program Files ₩ IBM ₩ WebSphere ₩ AppServer ₩ runtimes ₩ com.ibm.ws.ejb.embeddableContainer_8.0.0.jar' –

답변

2

는 RAS는 HPEL을 사용하지 않고는 WebSphere 임베드 EJB 컨테이너에 포함 된

여기 내 클래스 경로입니다. 이 오류 메시지는 클래스 경로의 일부 JAR이 다른 RAS를 사용 중임을 나타냅니다. C:\Program Files\IBM\WebSphere\AppServer\runtimes\com.ibm.ws.ejb.embeddableContainer_8.0.0.‌​jar을 제외한 모든 WebSphere JAR을 제거해야합니다.

0

이 문제를 없애고 프로젝트 패싯에서 런타임 선택을 선택 취소했습니다.

또한 JUint 내 설정이다) (지도 속성 = 새의 HashMap을

아래와 같이; properties.put (EJBContainer.PROVIDER, "com.ibm.websphere.ejbcontainer.EmbeddableContainerProvider"); 파일 jar = 새 파일 ("./ target/test_ejb.jar"); properties.put (EJBContainer.MODULES, jar); // 임베디드 컨테이너에서 구성된 DB 특성 properties.put ("com.ibm.websphere.embeddable.configFileName", "./target/test-classes/embeddable.properties"); EJBContainer ec = EJBContainer.createEJBContainer (properties);

0

FileNet P8에 연결할 때이 오류가 발생합니다. 나는 필요 :

  • com.ibm.ws.ejb.embeddableContainer_8.5.0.jar에게
  • com.ibm.ws.ejb.thinclient_8.5.0.jar
  • ibmorb.jar
  • com.ibm을 .ws.emf.jar
  • j2ee.jar은
  • Jace.jar을