如何阻止Wildfly11加载jar依赖webservices

时间:2018-05-10 08:26:24

标签: java spring java-ee wildfly wildfly-11

我需要一些帮助来阻止Wildfly11自动加载jar依赖项中带有 $jsonData[]=$array; } echo json_encode(array('data' =>$jsonData)); 注释的类。

依赖项是第三方,因此我无法更改jar的内容或更改源代码。

我试过了

@WebServiceProvider

这个完全禁用的webservices支持,现在很好(虽然我确实得到了其他错误似乎没有破坏任何东西)...但理想情况下我只想排除jar或某些类/类路径自动加载。

到目前为止我发现的是,<?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" /> </exclude-subsystems> </deployment> </jboss-deployment-structure> 注释不是bean扫描的一部分。因此,将@WebServiceProvider添加到bean-discovery-mode="none"没有任何影响。添加beans.xml没有运气,不包括jar或类..

申请详情

  • 输入: SpringBoot 2 war文件
  • 容器战争以独立模式部署到Wildfly 11
  • 为什么选择Wildfly?!客户指示。
  • 排除jar?我不想从类路径中排除整个jar,还有我需要的类。我只是不希望自动装载我没有要求的东西。

更新1 这是日志条目 是的,它抱怨WSDL ......但我甚至不希望这个课程首先加载。

jboss-scanning.xml

该课程用

注释
11:56:50,990 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."studyquotation.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."studyquotation.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "studyquotation.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.jboss.wsf.spi.WSFException: JBWS024109: Could not get WSDL contract for endpoint com.ca.gen80.wsrt.router.GenServiceRouter at WEB-INF/wsdl/router.wsdl
    at org.jboss.wsf.stack.cxf.metadata.MetadataBuilder.getWsdlLocationURL(MetadataBuilder.java:283)
    at org.jboss.wsf.stack.cxf.metadata.MetadataBuilder.build(MetadataBuilder.java:90)
    at org.jboss.wsf.stack.cxf.deployment.aspect.DescriptorDeploymentAspect.start(DescriptorDeploymentAspect.java:42)
    at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:73)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)
    ... 5 more

1 个答案:

答案 0 :(得分:0)

排除自动加载一些依赖的一种方法,我没有尝试但可能会对你有所帮助

我的jboss-deployment-structure.xml的内容

<jboss-deployment-structure>
  <deployment>
    <!-- Add picketlink module dependency -->
    <dependencies>
      <module name="org.picketlink" annotations="true">
        <imports>
           <exclude path="org/picketlink/identity/federation/core/pdp/**"/>
        </imports>
      </module>
    </dependencies>
  </deployment>
</jboss-deployment-structure>