[jbossws-issues] [JBoss JIRA] Updated: (JBWS-3305) CXF wrongly assumes that code using WSA must be employing a request-reply exchange

Alessio Soldano (JIRA) jira-events at lists.jboss.org
Mon Jun 13 17:22:23 EDT 2011


     [ https://issues.jboss.org/browse/JBWS-3305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alessio Soldano updated JBWS-3305:
----------------------------------

    Fix Version/s: jbossws-cxf-4.0.0.Beta2
                       (was:  jbossws-cxf-4.0)


> CXF wrongly assumes that code using WSA must be employing a request-reply exchange
> ----------------------------------------------------------------------------------
>
>                 Key: JBWS-3305
>                 URL: https://issues.jboss.org/browse/JBWS-3305
>             Project: JBoss Web Services
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: jbossws-cxf
>    Affects Versions: jbossws-cxf-4.0.0.Beta1
>            Reporter: Jim Ma
>            Assignee: Jim Ma
>             Fix For: jbossws-cxf-4.0.0.Beta2
>
>
> 00:44:38,254 INFO  [org.jboss.ws.common.management.DefaultEndpointRegistry] (MSC service thread 1-4) remove: jboss.ws:context=ws-t11-client,endpoint=CompletionInitiator
> 00:44:38,256 INFO  [org.jboss.ws.common.management.DefaultEndpointRegistry] (MSC service thread 1-4) remove: jboss.ws:context=ws-t11-client,endpoint=TerminationParticipant
> 00:44:38,258 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.unit."ws-t11-client.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."ws-t11-client.war".INSTALL: Failed to process phase INSTALL of deployment "ws-t11-client.war"
>     at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121) [jboss-as-server-7.0.0.Beta4-SNAPSHOT.jar:7.0.0.Beta4-SNAPSHOT]
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1675) [jboss-msc-1.0.0.Beta8.jar:1.0.0.Beta8]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
>     at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
> Caused by: javax.xml.ws.WebServiceException: java.lang.NullPointerException
>     at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:350)
>     at org.jboss.wsf.stack.cxf.deployment.EndpointImpl.doPublish(EndpointImpl.java:71)
>     at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:239)
>     at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:509)
>     at org.jboss.wsf.stack.cxf.configuration.NonSpringBusHolder.configure(NonSpringBusHolder.java:113)
>     at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.startDeploymentBus(BusDeploymentAspect.java:109)
>     at org.jboss.wsf.stack.cxf.deployment.aspect.BusDeploymentAspect.start(BusDeploymentAspect.java:132)
>     at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.internalDeploy(AspectDeploymentProcessor.java:78)
>     at org.jboss.as.webservices.deployers.TCCLDeploymentProcessor.deploy(TCCLDeploymentProcessor.java:42)
>     at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.0.0.Beta4-SNAPSHOT.jar:7.0.0.Beta4-SNAPSHOT]
>     ... 4 more
> Caused by: java.lang.NullPointerException
>     at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildWSAActions(JaxWsServiceFactoryBean.java:547)
>     at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation(JaxWsServiceFactoryBean.java:620)
>     at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInterface(ReflectionServiceFactoryBean.java:903)
>     at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:429)
>     at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:680)
>     at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:501)
>     at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:241)
>     at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202)
>     at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
>     at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:157)
>     at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:192)
>     at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:433)
>     at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:322)
>     ... 13 more
> The null pointer exception which causes the problem is in the following code taken from JaxWsServiceFactoryBean.buildWSAActions
>  
>  
>         . . .
>         if (action == null && addressing != null) {
>  
>             operation.getInput().addExtensionAttribute(JAXWSAConstants.WSAM_ACTION_QNAME,
>                                                        inputAction);
>             operation.getInput().addExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME,
>                                                        inputAction);
>             operation.getOutput().addExtensionAttribute(JAXWSAConstants.WSAM_ACTION_QNAME,
>                                                        computeAction(operation, "Response"));
>             operation.getOutput().addExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME,
>                                                         computeAction(operation, "Response"));
>  
>         } else {
>             MessageInfo input = operation.getInput();
>             input.addExtensionAttribute(JAXWSAConstants.WSAM_ACTION_QNAME, inputAction);
>             if (!StringUtils.isEmpty(action.input())) {
>                 input.addExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME, inputAction);
>             }
>  
>             MessageInfo output = operation.getOutput();
>             if (output != null && !StringUtils.isEmpty(action.output())) {
>                 output.addExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME, action.output());
>                 . . .
> The offending line is the one in bold. Notice that in the else clause the result of the getOutput() call is checked ut in the case where addressing is being used it is not checked. Clearly the code is based on the wrong assumption that code using WSA must be employing a request-reply exchange.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbossws-issues mailing list