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

Glen Mazza commented on CXF-1137:
---------------------------------

I can help with the bad WSDL's.  But actually, this NPE should not occur even 
if validation is turned off.  Can it just return a user-friendly error instead, 
not just an NPE?  It does not--nor should not--be as elaborate as the 
validation error message.  It should just say "PortType reference not found" or 
similar.

As for validation, in the future, I see two types of validation:
1.)  WSDL errors or BP-I violations that CXF cannot work properly with.  This 
should always be turned on.  For example, the same request body issue (#3 of my 
notes here:  http://www.jroller.com/gmazza/date/20071019#notes) -- CXF wrongly 
calls the first operation even though the second may be intended.

2.)  Those BP-I violations that CXF can still handle correctly anyway.  This 
probably should be optional, turned off by default.

I think what is needed is that each of our validation tests have an internal 
"requiredTest" flag that wsdl2java activates if this value is "true".  
WDYT?--How difficult would this be?

Glen


> CXF wsdl2java NPE's if it cannot find the wsdl:portType identified by a 
> wsdl:binding
> ------------------------------------------------------------------------------------
>
>                 Key: CXF-1137
>                 URL: https://issues.apache.org/jira/browse/CXF-1137
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.2
>            Reporter: Glen Mazza
>            Assignee: maomaode
>         Attachments: helloWorld.wsdl
>
>
> If a user accidentally gives a wrong portType name in the wsdl:binding 
> section, wsdl2java returns a NullPointerException without giving the user any 
> feedback why.  For example, for this portType:
>    <wsdl:portType name="HelloWorldPortType">
>              .....
>    </wsdl:portType>
> The name should be tns:HelloWorldPortType in the binding:
>    <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorldPortType">
>              .....
>    </wsdl:binding>
> But if the user accidentally has this in the WSDL:
>    <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">  (wrong 
> type given)
>              .....
>    </wsdl:binding>
> wsdl2java will return an NPE without any feedback about what the problem is.
> GlassFish Metro correctly returns a user-friendly error message under these 
> circumstances:
> wsdl:portType "{http://company.hw.demo/}HelloWorld"; not found in the wsdl: 
> file:/blah/blah/blah/helloWorld.wsdl

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to