如何识别缺少的JBoss EAP模块

时间:2017-05-29 18:14:41

标签: jboss6.x jboss-eap-6

我有一个列为依赖项的模块,

--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:   来自[Module]的 javax.servlet.http.HttpServletResponse   " com.td.cbaw.oauthlogin:主"来自本地模块加载器@ 16f65612   (发现者:本地模块查找器@ 311d617d(根:   /opt/jboss/EAP-6.4.0/modules,/opt/jboss/EAP-6.4.0/modules/system/layers/base))]

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上发现的信息的总和,基本上是无用的文档。

感谢。

2 个答案:

答案 0 :(得分: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步:在使用以下内容创建的目录中创建module.xml

<强> EAP-6.4.0 /模块/系统/层/基层/的javax / servlet的/ API /主/ 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 / modules / system / layers / base / javax / servlet / api / main 目录并重启服务器。

答案 1 :(得分:0)

解决了问题:ID10T错误。我的cli文件的预处理器没有替换发送给jboss的实际cli文件。我忘了强制复制cli上的模板。我使用的模板有$ {}变量被替换,我被迫使用sed,因为jboss-cli解析器不会在&#34;模块上执行变量替换&#34;命令。所以,我对jboss-cli中的一个错误的解决是根本原因。