Rational Application Developer(RAD)7.5+和websphere运行时不会从项目中获取jar

时间:2010-03-02 16:27:59

标签: java ide websphere rad

使用RAD版本:7.5.3,Java 1.5。

我有几个不同的项目。我需要打破java代码并将* .class文件转换为jar。所以基本上,相同的* .class文件我只是删除了代码,然后将类文件震动到jar中。

我将课程分成了一个罐子,然后将jar包含在项目中。我还在jar上做了一个订单/导出,以便其他项目可以看到jar。

此时,理想情况下我的项目不应该更改,因为我在jar中使用类文件而不是java代码。

当我在websphere中访问我的Web应用程序时,我在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.

我认为websphere并不承认jar。

这是错误:

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 个答案:

答案 0 :(得分:3)

当我们升级到WAS 7.0时,我们遇到了同样的问题

显然WAS 7.0改变了它查找依赖关系的方式,你需要确保你正在创建的JAR文件也在清单文件中提到它们使用它们。

因此,如果您在EJB和Web项目中都使用它,则需要更新两个清单文件以引用JAR。

答案 1 :(得分:1)

您是否在项目属性对话框中将jar添加到Java EE模块依赖项?是包浏览器中的EAR或Web Libraries节点下列出的jar?

答案 2 :(得分:0)

在将jar复制到WebContent / WEB-INF / lib之前,我遇到了同样的问题。你可以试试这个。