2010-03-02 4 views
2

RAD 버전 : 7.5.3, Java 1.5.RAD (Rational Application Developer) 7.5+ 및 websphere 런타임은 프로젝트에서 jar 파일을 선택하지 않습니다.

저는 두 가지 프로젝트가 있습니다. 자바 코드를 깨고 * .class 파일을 jar 파일로 변환해야했습니다. 그래서 기본적으로, 같은 * .class 파일을 방금 코드를 제거한 다음 클래스 파일을 jar 파일로 jarred합니다.

클래스를 jar 파일로 분리 한 다음 jar 파일을 프로젝트에 포함 시켰습니다. 또한 다른 프로젝트에서 병을 볼 수 있도록 병에 주문/내보내기 작업을 수행했습니다.

Java 코드 대신 jar 파일에 클래스 파일을 사용하고 있기 때문에이 시점에서 이상적으로 프로젝트가 변경되지 않아야합니다.

websphere에서 웹 응용 프로그램을 방문하면 jar 파일에있는 클래스에서 클래스를 찾을 수 없습니다.

프로젝트 구조 : 나는 스피어는 항아리를 인정 생각하지 않습니다

A. Project earApp -- will need the webapp 
B. Project webapp -- will need the project (no jar files or *.java files are found in this project) 
C. Project javasrc -- the java source and the NEW JAR file are found here. 

. 여기

오류입니다 :

java.lang.NoClassDefFoundError: com.MyApp 
at java.lang.ClassLoader.defineClassImpl(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:258) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) 
at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:675) 
at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:614) 
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:431) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:597) 
at java.lang.Class.getDeclaredMethodsImpl(Native Method) 
at java.lang.Class.getDeclaredMethods(Class.java:664) 
at com.ibm.ws.webcontainer.annotation.data.ScannedAnnotationData.collectMethodAnnotations(ScannedAnnotationData.java:130) 
at com.ibm.ws.webcontainer.annotation.data.ScannedAnnotationData.<init>(ScannedAnnotationData.java:47) 
at com.ibm.ws.webcontainer.annotation.AnnotationScanner.scanClass(AnnotationScanner.java:61) 
at com.ibm.ws.wswebcontainer.webapp.WebApp.processRuntimeAnnotationHelpers(WebApp.java:711) 
at com.ibm.ws.wswebcontainer.webapp.WebApp.populateJavaNameSpace(WebApp.java:624) 
at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:289) 
at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:93) 
at com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication(VirtualHost.java:162) 
at com.ibm.ws.wswebcontainer.WebContainer.addWebApp(WebContainer.java:671) 
at com.ibm.ws.wswebcontainer.WebContainer.addWebApplication(WebContainer.java:624) 
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:395) 
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:611) 
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1274) 
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1165) 
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:587) 
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:832) 
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921) 
at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2124) 
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497) 

당신이 내가 할 필요가 있다고 생각합니까?

답변

3

우리는 같은 문제를 겪고 있고, 당신은 당신이 또한 매니페스트 파일로 언급되고있는 만들고있는 JAR 파일을 확인해야 그들이 사용되는 곳.

그래서 EJB와 웹 프로젝트에서이 프로젝트를 사용하고 있다면 JAR을 참조하기 위해 두 매니페스트 파일을 모두 업데이트해야합니다.

+0

당신이 언급하고있는 Web Project의 매니페스트는 정확히 무엇입니까? 이 web.xml 파일이 맞지 않다고 가정합니까? – Juriy

1

프로젝트 등록 정보 대화 상자의 Java EE 모듈 종속성에 jar 파일을 추가 했습니까? 패키지 탐색기의 EAR 또는 웹 라이브러리 노드에 나열된 항아리입니까? 우리는 7.0

은 분명히 7.0은 종속성을 검색하는 방법을 변경 하였다 업그레이드 할 때

+0

나는 아직도 그것을 이해할 수 없었다. japp를 webapp의 Java EE 모듈 종속성에 추가했습니다. EAR을 사용하여 구성을 변경하지 않았습니다. 그러나 프로젝트의 jar 파일을 EAR 또는 Webapp 수준에서 구성해야하는 이유는 무엇입니까? 그것은 내 소스 프로젝트의 일부이며 그것을 수출하고 있습니까? 일시적으로, jar 파일을 webapp 아래의 WEB-INF/lib 디렉토리에 복사했습니다. 그리고 이것은 websphere 런타임에서 작동합니다. 그러나 그것은 내가 정말로 원했던 것이 아닙니다. –

+0

처음에는 무엇을 했습니까? 이클립스에서 'jar 파일로 내보내기'를 사용하여 jar 파일을 만든 다음 javasrc 프로젝트의 어딘가에 파일을 배치하고 웹 프로젝트의 java 빌드 경로에 추가 했습니까? 그렇다면 WAR/EAR을 실행/빌드 할 때이 항아리를 WEB-INF/lib에 복사해야한다는 것을 나타내야합니다. 보다 나은 옵션은 javasrc 프로젝트를 종속성으로 포함하도록 빌드 경로를 구성한 다음 java ee deps에서이 프로젝트의 체크 박스를 선택하는 것입니다. 이 –

0

WebContent/WEB-INF/lib에 jar 파일을 복사 할 때까지 동일한 문제점이있었습니다. 너는 이것을 시도 할 수있다.

관련 문제