You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Tharindu Mathew (JIRA)" <ji...@apache.org> on 2010/12/22 13:55:01 UTC

[jira] Commented: (AXIS2-3841) wsdl2java fails with NullPointException due to WSDL4J.Defintion returning null targetNamespace

    [ https://issues.apache.org/jira/browse/AXIS2-3841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12974178#action_12974178 ] 

Tharindu Mathew commented on AXIS2-3841:
----------------------------------------

Hi Christophe,

I have been able to reproduce the issue (WSDL attached). But IMO, this bug should be close because,

1) Even though target name space is an optional element the WS-I basic profile requires you to have it [1].

2) This is not an Axis2 bug but a WSDL4J bug. 

Also to answer your questions on -sp, I hope the following helps:
-s, --server-side
  emit server-side bindings for web service
-p, --package <argument>
  override all namespace to package mappings, use this package
  name instead

Best,

Tharindu

[1] - http://lists.w3.org/Archives/Public/www-ws/2004Feb/0014.html


> wsdl2java fails with NullPointException due to WSDL4J.Defintion returning null targetNamespace
> ----------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-3841
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3841
>             Project: Axis2
>          Issue Type: Bug
>          Components: codegen
>    Affects Versions: 1.4
>         Environment: Windows XP, Java 1.5
>            Reporter: Christophe Dumont
>
> wsdl2java is failing with the stack trace that you can find at the end of this note.
> It appears this is linked with the fact the wsdl I received from a service provider doesn't have any targetNamespace defined.
> If I modify the wsdl myself to add a targetNamespace all is ok, except when AXIS2 handles the response as it throws an exception about the namespace not being the one expected; the response message having no namespace... I do also wonder what is the use of the "-sp" option in the wsdl2java as it doesn't seem doing anything.
> Anyway I looked into the source code and found out that the WSDL4J library has a Defintion class that you are using, and that the method getTargetNamespace() is returning null. I "patched" the WSDL4J DefintionImpl to guarantee in case of null that a "" (empty string) is returned. This is because you are making a lot of calls on this class. The java package can then be generated and the WebService is working fine.
> It may be good to secure this null variable as you are doing a lot of string manipulation. I don't know if you could make sure that you always load an empty string in the Definition class in place of null, or if an issue should be raised to the WSDL4J team.
> Thank you for looking at this.
> [ERROR]
> java.lang.NullPointerException
>         at org.apache.axis2.addressing.wsdl.WSDL11DefaultActionPatternHelper.generateActionFromInputElement(WSDL11DefaultActionPatternHelper.java:71)
>         at org.apache.axis2.addressing.wsdl.WSDL11ActionHelper.getActionFromInputElement(WSDL11ActionHelper.java:67)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateOperations(WSDL11ToAxisServiceBuilder.java:1312)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populatePortType(WSDL11ToAxisServiceBuilder.java:590)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpoints(WSDL11ToAxisServiceBuilder.java:469)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:363)
>         at org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateAllServices(WSDL11ToAllAxisServicesBuilder.java:107)
>         at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:147)
>         at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
>         at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
> Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
> : Error parsing WSDL
>         at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:153)
>         at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
>         at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
> Caused by: org.apache.axis2.AxisFault
>         at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:397)
>         at org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateAllServices(WSDL11ToAllAxisServicesBuilder.java:107)
>         at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:147)
>         ... 2 more
> Caused by: java.lang.NullPointerException
>         at org.apache.axis2.addressing.wsdl.WSDL11DefaultActionPatternHelper.generateActionFromInputElement(WSDL11DefaultActionPatternHelper.java:71)
>         at org.apache.axis2.addressing.wsdl.WSDL11ActionHelper.getActionFromInputElement(WSDL11ActionHelper.java:67)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateOperations(WSDL11ToAxisServiceBuilder.java:1312)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populatePortType(WSDL11ToAxisServiceBuilder.java:590)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpoints(WSDL11ToAxisServiceBuilder.java:469)
>         at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:363)
>         ... 4 more

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org