2010-03-02 89 views
2

使用RAD版本:7.5.3,Java 1.5。Rational Application Developer(RAD)7.5+和websphere runtime不會從項目中挑選罐子

我有幾個不同的項目。我需要分解java代碼並將* .class文件轉換爲jar。所以基本上,相同的* .class文件我只是刪除了代碼,然後將類文件震撼到jar中。

我把課程分成了一個jar包,然後將jar包含在項目中。我還在罐子上做了訂單/出口,以便其他項目可以看到罐子。

在這一點上,理想情況下,我的項目不應該改變,因爲我在jar而不是java代碼中使用類文件。

當我在websphere中訪問我的web應用程序時,我現在在jar中的類中找不到class錯誤。

項目結構:

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. 

我不認爲WebSphere不太承認罐子。

以下是錯誤:

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

我們有同樣的問題,當我們升級到7.0

顯然是7.0改成了如何查找它的依賴,你需要確保你所創建的清單文件中也提到了JAR文件他們在哪裏使用。

因此,如果您在EJB和Web項目中都使用它,則需要更新兩個清單文件以引用JAR。

+0

你提到的Web Project中的清單究竟是什麼。我認爲這不是web.xml文件吧? – Juriy 2013-03-13 17:21:16

1

是否將jar添加到項目屬性對話框中的Java EE模塊依賴項?是在包資源管理器中的EAR或Web Libraries節點下列出的jar嗎?

+0

我還是搞不明白。我將jar添加到了webapp的Java EE模塊依賴項中。我沒有更改EAR的任何配置。 但是爲什麼必須在EAR或Webapp級別配置項目的jar。它是我的源項目的一部分,我正在出口它? 暫時,我只是將jar複製到webapp下的WEB-INF/lib目錄中。這適用於websphere運行時。但那不是我真正想要的。 – 2010-03-02 20:28:19

+0

你最初做了什麼?在eclipse中用'export to jar'創建一個jar,然後你把那個文件放在javasrc項目的某個地方,並將它添加到web項目的java構建路徑中?如果是這樣的話,那麼當你運行/構建WAR/EAR時,你仍然需要在eclipse上指出這個jar應該被複制到WEB-INF/lib。更好的選擇是配置構建路徑以包含javasrc項目作爲依賴項,然後在java ee deps中勾選此項目的複選框。這個 – 2010-03-02 22:36:55

0

我有相同的問題,直到我將jar複製到WebContent/WEB-INF/lib。你可以試試這個。

相關問題