Von JBoss gelieferte Dependencies nicht deployen

TSH

Bekanntes Mitglied
Hallo,

ich hoffe, das Thema passt hier rein. Ich habe ein JBoss Servlet. Dieses nutzt u.a. die Maven-Dependencies resteasy-jaxrs und resteasy-jaxb-provider (beide in Version 2.3.1.GA). Genau diese Jars liegen in meinem JBoss 7.1 modules Verzeichnis.

Wenn ich die dependencies nun aber auf "provided" setze, gibt es beim Servlet-Start einen Fehler, weil diese Bibliotheken nicht gefunden werden.

Kann mir jemand sagen, wo hier mein Denkfehler liegt? Werden weitere Infos benötigt? Freue mich über jeden Tipp!
 
Danke. Ich hab jetzt folgendes im POM geändert:

Code:
<dependencies>
<dependency>
  <groupId>org.jboss.resteasy</groupId>
  <artifactId>resteasy-jaxrs</artifactId>
  <version>2.3.1.GA</version>
  <scope>provided</scope>
</dependency>

<dependency>
  <groupId>org.jboss.resteasy</groupId>
  <artifactId>resteasy-jaxb-provider</artifactId>
  <version>2.3.1.GA</version>
  <scope>provided</scope>
</dependency>

</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <archive>
          <manifestEntries>
            <Dependencies>resteasy-jaxrs</Dependencies>
            <Dependencies>resteasy-jaxb-provider</Dependencies>
         </manifestEntries>
       </archive>
     </configuration>
    </plugin>	
  </plugins>
</build>

Nun bekomme ich aber folgende Fehlermeldung:
Code:
10:56:00,328 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-13) MSC00001: Failed to start service jboss.module.service."deployment.lunchtime.war".main: org.jboss.msc.service.StartException in service jboss.module.service."deployment.lunchtime.war".main: Failed to load module: deployment.lunchtime.war:main
	at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:91) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [classes.jar:1.6.0_29]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [classes.jar:1.6.0_29]
	at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_29]
Caused by: org.jboss.modules.ModuleNotFoundException: Module resteasy-jaxb-provider:main is not found in local module loader @6a3b8b49 (roots: /Users/Tim/Workspace/JBoss7.1/modules)
Im modules Verzeichnis ist aber ein Pfad zu genau diesem Modul. Hab ich hier einen Denkfehler gemacht?
 
Hi,

beim JBoss 7.* musst du den Modul Namen angeben der in der module.xml (für das jeweilige Module) definiert ist z.B.

[XML]
<archive>
<manifest>
<manifestEntries>
<Dependencies>org.slf4j,org.apache.log4j</Dependencies>
</manifestEntries>
</archive>
[/XML]

in deinem Fall:

[XML]
<archive>
<manifest>
<manifestEntries>
<Dependencies>org.jboss.resteasy.resteasy-jaxb-provider</Dependencies>
</manifestEntries>
</archive>
[/XML]

Grüße
 
Danke sehr. Jetzt bekomme ich aber andere Fehlermeldungen. Gibt es da vielleicht transitive Abhängigkeiten, um die ich mich kümmern müsste?

Code:
15:23:25,937 INFO  [org.jboss.weld.deployer] (MSC service thread 1-2) JBAS016008: Starting weld service for deployment lunchtime.war
15:23:26,703 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) WELD-000119 Not generating any bean definitions from my.domain.lunchtime.qype.QypeConnector because of underlying class loading error
15:23:26,705 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class my.domain.lunchtime.qype.QypeConnector
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:152) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:86) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:115) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:171) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.0.Final.jar:7.1.0.Final]
	at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.0.Final.jar:7.1.0.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0-ea]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0-ea]
	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0-ea]
Caused by: java.lang.NoClassDefFoundError: org/apache/http/client/ClientProtocolException
	at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.7.0-ea]
	at java.lang.Class.privateGetDeclaredFields(Class.java:2308) [rt.jar:1.7.0-ea]
	at java.lang.Class.getDeclaredFields(Class.java:1760) [rt.jar:1.7.0-ea]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:102) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections.getDeclaredFields(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:153) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:118) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:49) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:40) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
	at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:149) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	... 11 more
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.ClientProtocolException from [Module "deployment.lunchtime.war:main" from Service Module Loader]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
	... 29 more
 
Na
Java:
org/apache/http/client/ClientProtocolException
ist aus dem org/apache/httpcomponents Module d.h. denke ich mal das du diese Abhängigkeit mit eintragen musst.
 
Danke, das klappt. Aber es gibt wohl noch ein paar weitere solcher Abhängigkeiten. Kann man das evtl. alles auf einen Schlag erledigen? Irgendwie sagen, alles sei freigegeben. Oder die beiden RestEasy Dependencies und alle dadurch entstehenden?
 
Hi,

ich arbeite auch erst seit kurzem mit dem JBoss 7 und so ganz habe ich das Konzept noch nicht ganz verstanden. Micht nervt schon das man zusätzliche Module per hand selber erstellen muss ohne Maven unterstützung.

Das einzige was noch hilfreich ist wenn du mit einem ear arbeitest -> jboss-deployment-structure.xml kann man Globale Abhängigkeiten definieren ohne diese in jedem Projekt einzeln festlegen zu müssen. Aber sonst kann man glaube ich über die standalone.xml relevante Module eintragen die dann automatisch geladen werden (einfach nochmal in der Doc nachlesen).

Greetz
 

Zurück
Oben