2016-07-12 34 views
0

Wenn ich versuche, WAR-Datei in Jboss 7 AS Server zu implementieren habe ich Fehler folgendeJboss 7 deploy Streben Krieg Datei

23:23:07,111 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC00001: Failed to start service jboss.deployment.unit."testapp.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."testapp.war".POST_MODULE: Failed to process phase POST_MODULE of deployment "testapp.war" 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.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.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_95] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_95] 
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_95] 
Caused by: java.lang.RuntimeException: Error getting reflective information for class fr.improve.struts.taglib.layout.LabelledTag with ClassLoader ModuleClassLoader for Module "deployment.testapp.war:main" from Service Module Loader 
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58) 
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:85) 
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:70) 
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:55) 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    ... 5 more 
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/struts/util/MessageResources; 
    at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.7.0_95] 
    at java.lang.Class.privateGetDeclaredFields(Class.java:2509) [rt.jar:1.7.0_95] 
    at java.lang.Class.getDeclaredFields(Class.java:1819) [rt.jar:1.7.0_95] 
    at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    ... 10 more 
Caused by: java.lang.ClassNotFoundException: org.apache.struts.util.MessageResources from [Module "deployment.testapp.war:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.1.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.1.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.1.GA] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.1.GA] 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.1.GA] 
    ... 15 more 

23:23:07,118 INFO [org.jboss.as.server] (HttpManagementService-threads - 7) JBAS015870: Deploy of deployment "testapp.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"testapp.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"testapp.war\".POST_MODULE: Failed to process phase POST_MODULE of deployment \"testapp.war\""}} 
23:23:07,206 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015877: Stopped deployment testapp.war in 87ms 
23:23:07,206 INFO [org.jboss.as.controller] (HttpManagementService-threads - 7) JBAS014774: Service status report 
JBAS014777: Services which failed to start:  service jboss.deployment.unit."testapp.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."testapp.war".POST_MODULE: Failed to process phase POST_MODULE of deployment "testapp.war" 
+0

scheint die MessageResource Klasse in Ihrer Anwendung nicht verpackt oder als Modul zur Verfügung gestellt. Sie sollten weitere Informationen über Ihre Kriegsstruktur und darüber, wie Sie die Struts-Klassen hinzufügen, hinzufügen. – wfink

Antwort

0

Dieses Problem tritt auf, wenn Sie versuchen, ein Ohr/Krieg/jar Einsatz in jboss7 zu implementieren/Wildfly und Sie haben nicht angegeben, welche Abhängigkeiten Ihre Anwendung benötigen.

Jboss7/Wildfly hat seinen eigenen Modul-Klassenlader, um Anwendungen und Abhängigkeiten zu isolieren, die in derselben Java Virtual Machine laufen. Alle Bereitstellungen in jboss/wildfly werden als Module geladen (nicht nur der Inhalt, der im Modulordner enthalten ist, sondern auch der Inhalt des Bereitstellungsordners).

Wenn Sie kein "struts" jar in die Anwendungsbereitstellungsdatei gepackt haben, müssen Sie die erforderlichen Abhängigkeiten als Module bereitstellen und jboss mitteilen, dass Ihre Anwendung davon abhängt.

Also, Sie haben mindestens fünf Alternativen:

  1. Erstellen Sie Ihre Anwendung als Uber-Jar Ihre Abhängigkeiten einschließlich innen.
  2. Stellen Sie Ihre Anwendung und ihre Abhängigkeiten im Bereitstellungsordner bereit und fügen Sie einen Manifesteintrag in Ihrer Anwendung hinzu, um jboss mitzuteilen, dass Ihre Anwendung davon abhängt .
  3. Stellen Sie Ihre Anwendungs- und Anwendungsabhängigkeiten (jars) im Bereitstellungsordner bereit und fügen Sie Ihrer Anwendung einen jboss-Implementierungsdeskriptor xml hinzu, um jboss mitzuteilen, dass Ihre Anwendung davon abhängt.
  4. Stellen Sie Ihre Anwendung im Bereitstellungsordner bereit und erstellen Sie Module für Ihre Abhängigkeiten (falls nicht vorhanden) und fügen Sie einen Manifesteintrag in Ihre Anwendung hinzu, um jboss mitzuteilen, dass Ihre Anwendung davon abhängt.
  5. Stellen Sie Ihre Anwendung im Bereitstellungsordner bereit und erstellen Sie Module für Ihre Abhängigkeiten (falls nicht vorhanden) und verwenden Sie eine jboss-Implementierung descriptor xml in Ihrer Anwendung, um jboss mitzuteilen, dass Ihre -Anwendung davon abhängt.

Weitere Informationen finden Sie unter: jboss 7 classloader jboss 7 deployment descriptors