2016-05-31 6 views
2

Also vor allem, ich weiß kaum etwas über JBoss. Habe es noch nie zuvor gestreichelt, verstehe es immer noch nicht wirklich. Aber einer der Kunden meines Unternehmens verwendet es, um unsere Anwendung zu implementieren, und unser letztes Update hat die Konfiguration zerstört, also versuche ich es zu lösen.Hadoop, Trikot und JBoss: Anwendung startet nicht

Wie auch immer, hier ist die Version Info:

Hadoop: 2.7.2

Jersey: 2.3

JBoss: 6.1

OS: Windows (ich bezweifle, dass dies OS-spezifisch ist, das ist nur die Umgebung Ich arbeite daran in)

Wir haben vor kurzem ein Hadoop-Anschlussmodul zu unserer Anwendung hinzugefügt, und das scheint zu sein, was das verursacht Fehler. Ich habe in der Lage, das Problem zu reproduzieren, hier ist der Stack-Trace:

13:32:39,857 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit."eip.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."eip.war".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment "eip.war" 
     at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_65] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_65] 
     at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_65] 
Caused by: java.lang.LinkageError: Failed to link org/apache/hadoop/hdfs/web/resources/UserProvider (Module "deployment.eip.war:main" from Service Module Loader) 
     at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:428) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.Module.loadModuleClass(Module.java:548) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:189) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.as.web.deployment.ServletContainerInitializerDeploymentProcessor.loadClassInfoSet(ServletContainerInitializerDeploymentProcessor.java:232) 
     at org.jboss.as.web.deployment.ServletContainerInitializerDeploymentProcessor.deploy(ServletContainerInitializerDeploymentProcessor.java:161) 
     at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] 
     ... 5 more 
Caused by: java.lang.NoClassDefFoundError: com/sun/jersey/spi/inject/InjectableProvider 
     at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_65] 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:760) [rt.jar:1.8.0_65] 
     at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:345) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:423) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     ... 16 more 
Caused by: java.lang.ClassNotFoundException: com.sun.jersey.spi.inject.InjectableProvider from [Module "deployment.eip.war:main" from Service Module Loader] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2] 
     ... 20 more 

Also diese UserProvider Klasse, so scheint es eingerichtet werden, dass Jersey-Schnittstelle zu implementieren. Die Sache ist, dass Jersey-Schnittstelle eine 1.x-Schnittstelle ist, und wir haben 2.x-Bibliotheken in unserer Anwendung. Wir müssen die 2.x-Bibliotheken für andere Komponenten verwenden, es gab tatsächlich eine große Migration, 1.x für ein paar Monate zurück zu Graben.

So bin ich einfach total verloren. Ich habe alles versucht, was ich mir vorstellen kann, um das Problem zu beheben. Ich habe mich tief in die Dokumentation zu Weld vertieft, aber jedes Mal, wenn ich eine der konfigurationsbasierten Möglichkeiten der deaktivierten Schweißnaht ausprobiere, bekomme ich eine Ausnahme, dass es nicht versteht, wie man XML-Elemente analysiert, die sich auf das Schweißen beziehen.

Ich bin nur total verloren (ja, ich sagte das schon, aber es ist wahr). JBoss macht mich verrückt, aber dieser Klient will es benutzen, also müssen wir einen Weg finden es zu unterstützen. So

, hier sind die Dinge, die ich wirklich Hilfe mit verwenden:

1) Deaktivieren des Scanvorgangs, die UserProvider zu laden versucht, mit zu beginnen. Wir verwenden diese Klasse nicht in irgendeiner Form in unserer Anwendung, wir wollen es nicht einmal.

2) Verbessern Sie JBoss mit Jersey 2.3. Nicht ganz sicher, dass das möglich sein wird ...

3) Hacky hässliche Möglichkeiten, um diese Ausnahme verschwinden zu lassen. Hoffentlich ...

4) Alles andere, was ich tun kann, um dieses verdammte Ding arbeiten zu lassen.

Danke.

Antwort

0

Das Problem ist Hadoop 2.7 verwendet Jersey 1,9

0

Innerhalb dieser Fehler hatte ich hadoop Abhängigkeiten in Version zu entfernen: 2.6.0-MR1-cdh5.7.4

und fügen Sie Jersey-Server ein:

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>1.19.3</version> 
</dependency> 
0

Für mich bumping solr-solrj und solr-core von 6.2.1 bis 6.5.1 behoben das Problem, obwohl ich noch eine Warnung über UserService sehe. Es war ein merkwürdiger Fehler, weil er von einem Tag auf den anderen erschien, ohne irgendwelche Änderungen vorzunehmen.

Verwandte Themen