[ 
https://issues.apache.org/jira/browse/CXF-4493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13447257#comment-13447257
 ] 

Freeman Fang commented on CXF-4493:
-----------------------------------

Hi,

This wsdl is a invalid wsdl per WSDL 1, operations without an output cannot 
throw faults.

If you enable -validate flag with cxf wsdl2java you can see
WSDLToJava Error: 
line 535 column 126 of file:/Users/ffang/apache-cxf-2.6.1/bin/reseller.wsdl: 
cvc-complex-type.2.4.a: Invalid content was found starting with element 
'wsdl:fault'. One of '{"http://schemas.xmlsoap.org/wsdl/":output}' is expected.

By default CXF wsdl2java only do very basic WSI-BasicProfile validation and use 
-validate flag is highly recommended.

So add a NPE guard is enough for this issue.

Freeman
                
> If javax.jws.Oneway annotation is specified for a SOAP interface method a NPE 
> occurs
> ------------------------------------------------------------------------------------
>
>                 Key: CXF-4493
>                 URL: https://issues.apache.org/jira/browse/CXF-4493
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.6.2
>            Reporter: Thorben Betten
>            Assignee: Freeman Fang
>            Priority: Minor
>         Attachments: reseller.wsdl.txt
>
>
> If javax.jws.Oneway annotation is specified for a SOAP interface method a NPE 
> occurs. The passed OperationInfo "faults" member is left to null and thus 
> causes a NPE by calling:
> faultInfo.addExtensionAttribute(JAXWSAConstants.WSAW_ACTION_QNAME, 
> faultAction.value());
> If javax.jws.Oneway annotation is removed the endpoint gets registered 
> without problems.
> java.lang.NullPointerException
>       at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildWSAActions(JaxWsServiceFactoryBean.java:578)
>       at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation(JaxWsServiceFactoryBean.java:625)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInterface(ReflectionServiceFactoryBean.java:955)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:465)
>       at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:685)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:536)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:248)
>       at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
>       at 
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
>       at 
> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
>       at 
> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:207)
>       at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:442)
>       at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:329)
>       ... 42 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to