簡體   English   中英

hadoop,球衣和JBoss:應用程序無法啟動

[英]hadoop, jersey, and JBoss: application won't start

因此,首先,我對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接口。 事實是,Jersey接口是1.x接口,我們的應用程序中有2.x庫。 我們需要將2.x庫用於其他組件,實際上已經有很大的遷移,以便在幾個月后放棄1.x。

所以我完全迷路了。 我已經盡力嘗試解決此問題。 我已經深入研究了Weld的文檔,但是每當嘗試使用任何基於配置的禁用焊接的方法時,都會出現一個例外,它不知道如何解析引用焊接的xml元素。

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

因此,以下是我真正可以使用的幫助:

1)禁用嘗試加載UserProvider的掃描過程。 我們不會在應用程序中以任何形式使用此類,我們甚至都不想使用。

2)使JBoss在Jersey 2.3中更好地工作。 不能完全確定是否有可能...

3)使這種異常消失的頑強的丑陋方法。 希望...

4)為了使這該死的事情起作用,我可以做的其他事情。

謝謝。

問題是Hadoop 2.7使用jersey 1.9

在此錯誤中,我必須刪除版本中的hadoop依賴項:2.6.0-mr1-cdh5.7.4

並添加jersey-server一:

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

對於我來說,將solr-solrj和solr-core從6.2.1更改為6.5.1可以解決此問題,盡管我仍然看到有關UserService的警告。 這是一個奇怪的錯誤,因為它從一天出現到另一天,沒有進行任何更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM