2017-05-29 58 views
1

我有一個模塊,列出作爲依賴,如何識別丟失的JBoss EAP模塊

--dependencies=javax.servlet.api,javax.security.jacc.api,org.jboss.logging,org.picketbox,org.picketlink.federation,org.picketlink.federation.bindings,org.jboss.as.web 

但EAP抱怨缺少類,

造成的:拋出java.lang.ClassNotFoundException: javax.servlet.http.HttpServletResponse從[模塊 「com.td.cbaw.oauthlogin:主」 從本地模塊加載@ 16f65612 (取景器:本地模塊取景@ 311d617d(根: /O PT/JBoss的/ EAP-6.4.0 /模塊,/選擇/ JBoss的/ EAP-6.4.0 /模塊/系統/層/基))〕

javax.servlet.api模塊包含類問題

... 
81 javax/servlet/http/HttpServlet.class 
82 javax/servlet/http/LocalStrings_es.properties 
83 javax/servlet/http/HttpSessionContext.class 
84 javax/servlet/http/NoBodyOutputStream.class 
85 javax/servlet/http/HttpServletResponse.class <==== 
86 javax/servlet/http/HttpUtils.class 
87 javax/servlet/http/HttpSessionListener.class 
88 javax/servlet/http/HttpSessionActivationListener.class 
.... 

怎樣一個根本原因,這樣的問題?

這是我在這個主題上發現的信息的總和,Find_the_JBoss_Module_Dependency,本質上無用的文檔。

謝謝。

回答

1

看着日誌似乎你是缺少的jboss-servlet-api_3.0 JBoss模塊。爲了解決這個問題,按照以下步驟進行:

步驟1:創建目錄javax/servlet/api/main,如EAP-6.4.0/modules/system/layers/base/javax/servlet/api/main

步驟2:

EAP-6.4:下面內容中創建的目錄內創建module.xml .0/modules/system/layers/base/javax/servlet/api/main/module.xml

<?xml version="1.0" encoding="UTF-8"?> 

<module xmlns="urn:jboss:module:1.1" name="javax.servlet.api"> 
    <resources> 
     <resource-root path="jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar"/> 
     <!-- Insert resources here --> 
    </resources> 
</module> 

步驟3:從https://mvnrepository.com/artifact/org.jboss.spec.javax.servlet/jboss-servlet-api_3.0_spec下載jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2並把它內部EAP-6.4.0 /模塊/系統/層/基層/的javax/servlet的/ API /主目錄並重啓服務器。

+0

我應該說已安裝javax.servlet.api模塊。 –

+1

接受了這個答案,因爲它解決了構建滿足依賴關係的模塊的一般情況 –

0

解決了這個問題:ID10T錯誤。我的cli文件的預處理程序並未替換髮送給jboss的實際cli文件。我忘了強制將模板複製到cli上。我使用的模板有$ {}變量被替換,我被強制轉換爲sed,因爲jboss-cli解析器不會對「module」命令執行變量替換。所以,我在jboss-cli中繞過一個bug是根本原因。