【问题标题】:jboss 6.3.0: decent way to remove resteasy and use jerseyjboss 6.3.0:去除resteasy和使用球衣的好方法
【发布时间】:2015-09-28 13:17:00
【问题描述】:

我正在使用运动衫。

这是我的 jboss 部署结构:

<?xml version="1.0" encoding="UTF-8"  ?>  
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>  
<exclusions>
  <module name="org.jboss.resteasy.resteasy-atom-provider" />
  <module name="org.jboss.resteasy.resteasy-cdi" />
  <module name="org.jboss.resteasy.resteasy-jaxrs" />
  <module name="org.jboss.resteasy.resteasy-jaxb-provider" />
  <module name="org.jboss.resteasy.resteasy-jackson-provider" />
  <module name="org.jboss.resteasy.resteasy-jsapi" />
  <module name="org.jboss.resteasy.resteasy-multipart-provider" />
  <module name="org.jboss.resteasy.async-http-servlet-30" />
  <module name="javax.ws.rs.api" />      
</exclusions>         

<exclude-subsystems>
    <subsystem name="resteasy" />
    <subsystem name="webservices" />
    <subsystem name="jaxrs" />                         
</exclude-subsystems>          
</deployment>  
</jboss-deployment-structure>  

仅此一项是行不通的。我不得不评论

<resource-root path="jboss-jaxrs-api_1.1_spec-1.0.1.Final-redhat-2.jar"/>

jbossHOME\modules\system\layers\base\javax\ws\rs\api\main\module.xml.

现在其余服务工作正常,但是通过评论该行,我正在为服务器中的每个应用程序禁用 resteasy!这是一个hack,而不是一个适当的解决方案。有没有一种体面的方法可以仅针对给定的应用程序禁用 resteasy 而无需触及常规服务器配置?

谢谢

【问题讨论】:

    标签: jersey resteasy jboss6.x


    【解决方案1】:

    在 JBoss 6 或 7 AS resteasy 被 JavaEE 模块加载为依赖模块。大多数时候人们都被困在这里,因为我们不能排除 JavaEE。但是,可以排除 JavaEE 并包含 JavaEE 应该加载的模块,但我们不需要的模块除外。

    更多详情您可以在这里查看Foolproof method of excluding resteasy...

    来自同一个地方的示例 jboss-deployment-structure.xml(位于 WEB-INF/ 中):

    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
      <deployment>
        <exclude-subsystems>
          <subsystem name="jaxrs" />
          <subsystem name="webservices" />
          <subsystem name="resteasy" />
        </exclude-subsystems>
        <exclusions>
          <module name="javaee.api" />
          <module name="javax.ws.rs.api" />
          <module name="org.jboss.as.jaxrs" />
          <module name="org.jboss.resteasy.resteasy-jaxrs" />
          <module name="org.jboss.resteasy.resteasy-cdi" />
          <module name="org.jboss.resteasy.jackson-provider" />
          <module name="org.jboss.resteasy.resteasy-atom-provider" />
          <module name="org.jboss.resteasy.resteasy-hibernatevalidator-provider" />
          <module name="org.jboss.resteasy.resteasy-jaxb-provider" />
          <module name="org.jboss.resteasy.resteasy-jettison-provider" />
          <module name="org.jboss.resteasy.resteasy-jsapi" />
          <module name="org.jboss.resteasy.resteasy-multipart-provider" />
          <module name="org.jboss.resteasy.resteasy-yaml-provider" />
          <module name="org.codehaus.jackson.jackson-core-asl" />
          <module name="org.codehaus.jackson.jackson-jaxrs" />
          <module name="org.codehaus.jackson.jackson-mapper-asl" />
          <module name="org.codehaus.jackson.jackson-xc" />
          <module name="org.codehaus.jettison" />
          <module name="org.jboss.as.webservices.*" />
          <module name="org.jboss.ws.*" />
        </exclusions>
    
        <dependencies>
          <module name="javax.activation.api" export="true" />
          <module name="javax.annotation.api" export="true" />
          <!-- <module name="javax.ejb.api" export="true" />
          <module name="javax.el.api" export="true" /> -->
          <module name="javax.enterprise.api" export="true" />
          <module name="javax.enterprise.deploy.api" export="true" />
          <module name="javax.inject.api" export="true" />
          <module name="javax.interceptor.api" export="true" />
          <!-- <module name="javax.jms.api" export="true" />
          <module name="javax.jws.api" export="true" />
          <module name="javax.mail.api" export="true" />
          <module name="javax.management.j2ee.api" export="true" /> -->
          <module name="javax.persistence.api" export="true" />
          <module name="javax.resource.api" export="true" />
          <!-- <module name="javax.rmi.api" export="true" />
          <module name="javax.security.auth.message.api" export="true" />
          <module name="javax.security.jacc.api" export="true" /> -->
          <module name="javax.servlet.api" export="true" />
          <module name="javax.servlet.jsp.api" export="true" />
          <module name="javax.transaction.api" export="true" />
          <module name="javax.validation.api" export="true" />
    
          <!-- <module name="javax.ws.rs.api" export="true" services="export" /> -->
    
          <module name="javax.xml.bind.api" export="true" />
          <module name="javax.xml.registry.api" export="true" />
          <module name="javax.xml.soap.api" export="true" />
          <module name="javax.xml.ws.api" export="true" />
    
          <!-- This one always goes last. -->
          <module name="javax.api" export="true" />
        </dependencies>
    
      </deployment>
    </jboss-deployment-structure>
    

    【讨论】:

    • 好一个。有没有办法在一行中排除多个模块,比如org.jboss.resteasy.*
    • 我没有尝试过,但很可能它不会工作。如果对您有用,您可以尝试排除子系统。这种方法是我最后的手段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多