2010-03-02 29 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。你可以试试这个。

相关问题