在Jboss 6.3.0 EAP中部署Java WS时出错

时间:2015-01-21 14:55:40

标签: web-services java-ee soap jboss7.x jboss-eap-6

我正在使用Java WS从Jboss 5.1.0迁移到Jboss 6.3.0 EAP的应用程序。它适用于Jboss 5.1.0,但是在Jboss 6.3.0 EAP中部署它时遇到错误。

14:42:10,887 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deploy
ment.unit."my-app.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."dtm-banking.
war".INSTALL: JBAS018733: Failed to process phase INSTALL of deployment "dtm-banking.war"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [jboss-a
s-server-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-ms
c-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.F
inal-redhat-1.jar:1.1.5.Final-redhat-1]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
Caused by: javax.xml.ws.WebServiceException: java.lang.reflect.UndeclaredThrowableException
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:371)
        at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.doPublish(EndpointImpl.java:66)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:539)
        at org.jboss.wsf.stack.cxf.configuration.NonSpringBusHolder.configure(NonSpringBusHolder.java:118)
        at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.startDeploymentBus(BusDeploymentAspect.java:137
)
        at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.start(BusDeploymentAspect.java:69)
        at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:74)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [jboss-a
s-server-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
        ... 5 more
Caused by: java.lang.reflect.UndeclaredThrowableException
        at com.sun.proxy.$Proxy371.visitLabel(Unknown Source)
        at org.apache.cxf.jaxws.WrapperClassGenerator.createWrapperClass(WrapperClassGenerator.java:213)
        at org.apache.cxf.jaxws.WrapperClassGenerator.generate(WrapperClassGenerator.java:122)
        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.generatedWrapperBeanClass(JaxWsServiceFactoryBean.java:6
83)
        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.getExtraClass(JaxWsServiceFactoryBean.java:653)
        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBea
n.java:484)
        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:704)
        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBe
an.java:550)
        at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
        at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:215)
        at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java
:102)
        at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
        at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:456)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
        ... 13 more
Caused by: java.lang.NoSuchMethodException: org.objectweb.asm.MethodWriter.visitLabel(org.objectweb.asm.Label)
        at java.lang.Class.getMethod(Class.java:1665) [rt.jar:1.7.0_60]
        at org.apache.cxf.common.util.ReflectionInvokationHandler.invoke(ReflectionInvokationHandler.java:85)
        ... 28 more

我理解Jboss 6.3.0 EAP使用CXF实现webservice,但我正在寻找简单的Java WS来使用标准的Java EE环境。

在jboss-deployment-structure.xml

中尝试了以下内容
<exclude-subsystems>
    <subsystem name="webservices" />
</exclude-subsystems>

这在部署时摆脱了异常但在调用服务的wsdl时我得到了一个Classcast异常

http://localhost:8080/myapp/myservice?wsdl

JBWEB000235:为servlet MyWebService分配异常:java.lang.ClassCastException:com.example.webservice.endpoint.DataService无法强制转换为javax.servlet.Servlet

任何想法?

3 个答案:

答案 0 :(得分:7)

问题是在部署中捆绑asm.jar 请尝试将其删除,然后将其添加到jboss-deployment-structure.xml

<jboss-deployment-structure>
    <deployment>
       <dependencies>
            ...
            <module name="asm.asm" />
            ...
        </dependencies>
    </deployment>
</jboss-deployment-structure>

查看更多:https://developer.jboss.org/message/823745

答案 1 :(得分:2)

The answer为我解决的问题是:

  

我遇到了同样的问题。仅添加jboss-deployment-structure.xml   为WAR文件工作。如果我在一个EAR中解密了WAR,我得到了   错误回来。所以我添加了

  <global-modules>
    <module name="asm.asm" slot="main"/>
  </global-modules>
     

到当前的jboss配置,即standalone-full.xml它   对我来说很好。

因此,如果有人偶然发现这个问题,请试一试。

答案 2 :(得分:0)

Rifer这个页面也是。 https://access.redhat.com/solutions/690353

  

对于给定的类特定方法,不抛出上述错误   找到。因此,用户在他们的应用程序和类中打包asm jar   包含在jar中的“org.objectweb.asm.MethodWriter”没有   方法“public void visitLabel(org.objectweb.asm.Label);”于是   得到“java.lang.NoSuchMethodException”。