Rational Application Developer (RAD) 7.5+ and websphere runtime will not pick up jars from projects

10,355

Solution 1

We have had the same problem when we upgraded to WAS 7.0

Apparently WAS 7.0 changed how it looks up its dependencies, and you need to make sure the JAR files you are creating are also mentioned in the manifest file where they are used.

So if you're using it in both the EJB and Web project, you will need to update both of the manifest files to reference the JAR.

Solution 2

did you add the jar to the Java EE module dependencies in the project properties dialog? is the jar listed under EAR or Web Libraries node in the package explorer?

Share:
10,355
Berlin Brown
Author by

Berlin Brown

He is a software developer interested in a variety of different technologies. He has worked with the CDC, Geographic Information Systems (GIS) and now works for a Financial Services firm. You can find him freenode as blbrown and also visit botlist and botnode.com. Berlin can be found in Atlanta, Georgia. See http://twitter.com/#!/berlinbrowndev2 and http://berlinbrowndev.blogspot.com/

Updated on June 05, 2022

Comments

  • Berlin Brown
    Berlin Brown almost 2 years

    With RAD Version: 7.5.3, Java 1.5.

    I have a couple of different projects. I needed to break out the java code and turn the *.class files into a jar. So basically, same *.class files I just removed the code and then jarred the class files into a jar.

    I broke the classes into a jar and then included the jar in the project. And I also did an order/export on the jar so that other projects can see the jar.

    At this point, ideally my project should not have changed because I am using class files in a jar instead of the java code.

    When I visit my web application in websphere, I get class not found errors on the classes that are now in the jar.

    Project Structure:

    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.
    

    I don't think websphere is acknowledging the jar.

    Here is the error:

    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)
    

    What do you think I need to do?