[jboss-as7-dev] Classpath problems in EAR project

Panzer, Robert Robert.Panzer at wincor-nixdorf.com
Tue Nov 8 08:19:06 EST 2011


Hi,

did you define the class-path in the MANIFEST.MF of EJB-Main.jar like this?
Class-Path: EJB-MainClient.jar

If this does not work, you could move the EJB-MainClient.jar to a lib/ folder in your ear, so that you would have this layout:
EJB-MainEAR.ear
        JPA-Main.jar (JPA Project)
        EJB-Main.jar (EJB Session Beans Project)
        GWT-Main.war (Web Project)
        lib/
                EJB-MainClient.jar (EJB Interfaces Project)

JEE5 defines that jars inside the lib/ folder have to be included in the class path for the contained modules.
Imho this would be the best way anyway to distinguish modules from utility jars.

Kind regards,
Robert




From: jboss-as7-dev-bounces at lists.jboss.org [mailto:jboss-as7-dev-bounces at lists.jboss.org] On Behalf Of Diego Keller Silva
Sent: Tuesday, November 08, 2011 1:54 PM
To: jboss-as7-dev at lists.jboss.org
Subject: [jboss-as7-dev] Classpath problems in EAR project

Hi!

I am migrating a project from JAS 6 Final to JAS 7.0.2 Final.

Here is the structure of my application:

EJB-MainEAR.ear
        JPA-Main.jar (JPA Project)
        EJB-MainClient.jar (EJB Interfaces Project)
        EJB-Main.jar (EJB Session Beans Project)
        GWT-Main.war (Web Project)

I read the article https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 and i am aware of the property ear-subdeployments-isolated.

I tried to add this property to the file C:\jboss7\standalone\configuration\standalone.xml setting it to FALSE.
<subsystem xmlns="urn:jboss:domain:ee:1.0">
        <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
</subsystem>

But i get this error message whe starting JBoss.
"SistemaSession" is the EJB interface inside EJB-MainClient.jar.

10:39:03,356 WARN  [org.jboss.modules] (MSC service thread 1-4) Failed to define class com.framework.business.ejb.session.SistemaSessionBean in Module "deployment.EJB-MainEAR.ear.EJB-Main.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/framework/business/ejb/session/SistemaSessionBean (Module "deployment.EJB-MainEAR.ear.EJB-Main.jar:main" from Service Module Loader)
        at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:401) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.as.ejb3.deployment.processors.BusinessViewAnnotationProcessor.getEjbClass(BusinessViewAnnotationProcessor.java:201)
        at org.jboss.as.ejb3.deployment.processors.BusinessViewAnnotationProcessor.deploy(BusinessViewAnnotationProcessor.java:83)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.7.0_01]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.7.0_01]
        at java.lang.Thread.run(Thread.java:722) [:1.7.0_01]
Caused by: java.lang.NoClassDefFoundError: com/framework/business/client/intf/SistemaSession
        at java.lang.ClassLoader.defineClass1(Native Method) [:1.7.0_01]
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [:1.7.0_01]
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [:1.7.0_01]
        at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]
        ... 15 more
Caused by: java.lang.ClassNotFoundException: com.framework.business.client.intf.SistemaSession from [Module "deployment.EJB-MainEAR.ear.EJB-Main.jar:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]
        ... 19 more

Then i tried to add a jboss-deployment-structure.xml file to the EAR, defining all the dependencies.

<jboss-deployment-structure>
  <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
  <deployment>
    <dependencies>
      <module name="com.keyworks.k3" />
    </dependencies>
  </deployment>
  <sub-deployment name="JPA-Main.jar">
  </sub-deployment>
  <sub-deployment name="EJB-MainClient.jar">
    <dependencies>
      <module name="deployment.EJB-MainEAR.ear.JPA-Main.jar:main" />
    </dependencies>
  </sub-deployment>
  <sub-deployment name="EJB-Main.jar">
    <dependencies>
      <module name="deployment.EJB-MainEAR.ear.JPA-Main.jar:main" />
          <module name="deployment.EJB-MainEAR.ear.EJB-MainClient.jar:main" />
    </dependencies>
  </sub-deployment>
  <sub-deployment name="GWT-Main.war">
    <dependencies>
      <module name="deployment.EJB-MainEAR.ear.JPA-Main.jar:main" />
          <module name="deployment.EJB-MainEAR.ear.EJB-MainClient.jar:main" />
    </dependencies>
  </sub-deployment>
</jboss-deployment-structure>

And the error message when starting JBoss was:

10:43:37,194 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployment of "EJB-MainEAR.ear" was rolled back with failure message {"Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"EJB-MainEAR.ear\".\"GWT-Website.war\".CONFIGURE_MODULE missing [ jboss.module.information.service.\"deployment.EJB-MainEAR.ear.JPA-Main.jar:main\".main, jboss.module.information.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar:main\".main ]","jboss.deployment.subunit.\"EJB-MainEAR.ear\".\"EJB-Main.jar\".CONFIGURE_MODULE missing [ jboss.module.information.service.\"deployment.EJB-MainEAR.ear.JPA-Main.jar:main\".main, jboss.module.information.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar:main\".main ]","jboss.deployment.subunit.\"EJB-MainEAR.ear\".\"JPA-Main.jar\".POST_MODULE missing [ jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-Main.jar\".main ]","jboss.module.service.\"deployment.EJB-MainEAR.ear\".main missing [ jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-Main.jar\".main ]","jboss.deployment.subunit.\"EJB-MainEAR.ear\".\"EJB-MainClient.jar\".CONFIGURE_MODULE missing [ jboss.module.information.service.\"deployment.EJB-MainEAR.ear.JPA-Main.jar:main\".main ]","jboss.deployment.subunit.\"EJB-MainEAR.ear\".\"TST-Main.war\".CONFIGURE_MODULE missing [ jboss.module.information.service.\"deployment.EJB-MainEAR.ear.JPA-Main.jar:main\".main, jboss.module.information.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar:main\".main ]","jboss.deployment.unit.\"EJB-MainEAR.ear\".POST_MODULE missing [ jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.GWT-Website.war\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-Main.jar\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.TST-Main.war\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.GWT-Main.war\".main ]","jboss.deployment.subunit.\"EJB-MainEAR.ear\".\"GWT-Main.war\".CONFIGURE_MODULE missing [ jboss.module.information.service.\"deployment.EJB-MainEAR.ear.JPA-Main.jar:main\".main, jboss.module.information.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar:main\".main ]","jboss.module.service.\"deployment.EJB-MainEAR.ear.JPA-Main.jar\".main missing [ jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-MainClient.jar\".main, jboss.module.spec.service.\"deployment.EJB-MainEAR.ear.EJB-Main.jar\".main ]"]}

What i need to do for my modules (JAR and WAR) to see each other and get this working?


[cid:image001.gif at 01CC9E21.5FF91310]
Diego Keller
diego.keller at keyworks.com.br<mailto:diego.keller at keyworks.com.br>

(54) 3534-8980
http://www.keyworks.com.br<http://www.keyworks.com.br/>
Keyworks TI (r) - Tailor Made Software

WINCOR NIXDORF International GmbH
Sitz der Gesellschaft: Paderborn
Registergericht Paderborn HRB 3507
Geschäftsführer: Eckard Heidloff (Vorsitzender), Stefan Auerbach, Dr. Jürgen Wunram
Vorsitzender des Aufsichtsrats: Karl-Heinz Stiller
Steuernummer: 339/5884/0020 - Ust-ID Nr.: DE812927716 - WEEE-Reg.-Nr. DE44477193

Diese E-Mail enthält vertrauliche Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben,
informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser E-Mail ist nicht gestattet.

This e-mail may contain confidential information.
If you are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail.
Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-as7-dev/attachments/20111108/eae7c83c/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 4672 bytes
Desc: image001.gif
Url : http://lists.jboss.org/pipermail/jboss-as7-dev/attachments/20111108/eae7c83c/attachment-0001.gif 


More information about the jboss-as7-dev mailing list