2016-05-31 22 views
2

所以首先,我幾乎不知道關於JBoss的任何信息。從來沒有碰過它昨天,仍然不是很明白它。但是,我公司的一位客戶正在使用它來部署我們的應用程序,而我們的最新更新打破了他們的配置,所以我正在努力解決它。hadoop,jersey和JBoss:應用程序無法啓動

總之,這裏的版本信息:

的Hadoop:2.7.2

球衣:2.3

的JBoss:6.1

操作系統:Windows(我懷疑這是特定於操作系統,這只是我正在處理的環境)

我們最近在我們的應用程序中添加了Hadoop連接器模塊,這似乎是什麼導致失敗。我已經能夠重現該問題,這裏是堆棧跟蹤:

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 

所以這UserProvider類,它似乎是設置來實現澤西接口。問題是,Jersey界面是1.x界面,我們的應用程序中有2.x庫。我們需要將2.x庫用於其他組件,實際上有一次大的遷移可以在幾個月前拋棄1.x。

所以我完全失去了。我嘗試了所有我能想到的方法來嘗試解決這個問題。我深入研究了Weld的文檔,但每當我嘗試任何基於配置的禁用焊接方法時,我都會得到一個異常,它不知道如何解析引用焊接的xml元素。

我完全失去了(是的,我已經說過了,但它是真的)。 JBoss讓我瘋狂,但這個客戶想要使用它,所以我們必須找到一種方法來支持它。

因此,這裏有我真的可以用幫助的事情:

1禁用正在試圖加載UserProvider開始掃描過程)。我們不會以任何方式在我們的應用程序中使用此類,我們甚至不想。 2)使澤西2.3版更好地運行JBoss。不完全確定這將是可能的...

3)哈克醜陋的方式,使這種例外消失。希望...

4)我可以做任何事情,使這個該死的事情工作。

謝謝。

回答

0

的問題是Hadoop的2.7採用1.9球衣

0

在這個錯誤,我不得不刪除版本的Hadoop依賴關係:2.6.0-MR1-cdh5.7.4

,並添加球衣服務器之一:

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

對我來說,將solr-solrj和solr-core從6.2.1改爲6.5.1就解決了這個問題,儘管我仍然看到有關UserService的警告。這是一個奇怪的錯誤,因爲它從一天出現到另一天,沒有做任何改變。