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 "Dennis Sosnoski (JIRA)" <ji...@apache.org> on 2007/02/11 23:55:05 UTC
[jira] Commented: (AXIS2-2088) wsdl2java JiBX code generator and
-Ebindingfile option unavailable in ant task
[ https://issues.apache.org/jira/browse/AXIS2-2088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12472149 ]
Dennis Sosnoski commented on AXIS2-2088:
----------------------------------------
The exception looks to be caused by not using the prefix assigned to the namespace on the type-names within the JiBX binding. The binding defines types used by the WSDL with names:
<binding forwards="false" value-style="attribute" xmlns:ns2="http://login/types">
<namespace uri="http://login/types" default="elements"/>
<mapping class="login.types.ReturnWebLoginElement" type-name="return-web-login-element">
<value style="element" name="local-soap_session_id-element" field="localSoap_session_idElement" usage="optional"/>
<value style="element" name="local-web_user_name-element" field="localWeb_user_nameElement" usage="optional"/>
</mapping>
...
But the types are expected to be defined within the http://login/types namespace, and this doesn't do it. To have the type-name be in the proper namespace you need to actually use the prefix declared for that namespace as part of the value of the type-name. In this case, the <mapping> element should be changed to:
<mapping class="login.types.ReturnWebLoginElement" type-name="ns2:return-web-login-element">
With this change, the NPE should be avoided. I've entered a JiBX bug (http://jira.codehaus.org/browse/JIBX-152) to address the NPE issue itself.
There are other problems with the supplied samples, though. The WSDL schema component does not specify elementFormDefault="qualified", so only the top-level elements (WebLoginElement and ReturnWebLoginElement) should be namespaces. The supplied binding applies the namespace to all element names. For use without the '-uw' option the binding would also need to be changed to use element names in the proper namespace on the <mapping> components (unwrapped matches type-names in the binding definition, wrapped matches element names)
I don't have any response to the first point raised, about the ant task, so I'm not marking this bug resolved even though this comment should take care of the "big one" part of the issue.
> wsdl2java JiBX code generator and -Ebindingfile option unavailable in ant task
> -------------------------------------------------------------------------------
>
> Key: AXIS2-2088
> URL: https://issues.apache.org/jira/browse/AXIS2-2088
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: codegen
> Affects Versions: 1.1.1
> Environment: Windows XP SP2, jre 1.5 update 10, and 1.7.0
> Reporter: Jorge Fernández
> Attachments: binding.xml, build.xml, LoginServiceJiBX.wsdl, ReturnWebLoginElement.java, WebLoginElement.java
>
>
> First the little question: is there any way for passing the -Ebindingfile in the ant task of wsdl2java? because I didn't find it.
> The big one: I'm having a problem with wsdl2java code generation. I'm trying JiBX databinding in wrapped mode. I've got my objects defined, my wsdl definition of the service and I made my binding definition manually. I also made an ant task, following the steps of the jibx tutorial. I generated the binding definition with JiBX tools.
> This is the problem:
> When I use the ant task for compiling the binding definition with the build.xml, everything seems to go alright. After that, I would have to type some code for running the service and that's why I decided to use wsdl2java. When I use wsdl2java for code generation I get this error:
> I use the command like this:
> wsdl2java -uri LoginServiceJiBX.wsdl -o src\ -p loginjibx -ss -sd -d jibx -g -sn LoginServiceJiBX -pn LoginEndpointPort -ns2p http://login=login,http://www.w3.org/2001/XMLSchema=org.w3.www._2001.xmlschema,http://login/types=login.types,http:/
> /schemas.xmlsoap.org/wsdl/soap=org.xmlsoap.schemas.wsdl.soap,http://schemas.xmls
> oap.org/wsdl=org.xmlsoap.schemas.wsdl -ssi -Ebindingfile binding.xml
> This is the trace:
> Using AXIS2_HOME: D:\Programas\PFC\axis2-1.1.1
> Using JAVA_HOME: D:\Programas\Java\jdk1.5.0_09
> Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
> : java.lang.NullPointerException
> at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGener
> ationEngine.java:224)
> at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:32)
> at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:21)
> Caused by: java.lang.NullPointerException
> at org.jibx.runtime.impl.StAXReaderWrapper.getNamespace(StAXReaderWrappe
> r.java:455)
> at org.jibx.runtime.impl.UnmarshallingContext.getNamespaceUri(Unmarshall
> ingContext.java:3125)
> at org.jibx.runtime.QName.deserialize(QName.java:234)
> at org.jibx.binding.model.MappingElement.setQualifiedTypeName(MappingEle
> ment.java:261)
> at org.jibx.binding.model.MappingElement.JiBX_binding_unmarshalAttr_5_0(
> MappingElement.java)
> at org.jibx.binding.model.JiBX_bindingMappingElement_access.unmarshal()
> at org.jibx.binding.model.BindingElement.JiBX_binding_unmarshal_3_0(Bind
> ingElement.java)
> at org.jibx.binding.model.JiBX_bindingBindingElement_access.unmarshal()
> at org.jibx.runtime.impl.UnmarshallingContext.unmarshalElement(Unmarshal
> lingContext.java:2538)
> at org.jibx.binding.model.BindingElement.readBinding(BindingElement.java
> :609)
> at org.jibx.binding.model.BindingElement.readBinding(BindingElement.java
> :625)
> at org.apache.axis2.jibx.CodeGenerationUtility.engage(CodeGenerationUtil
> ity.java:240)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.apache.axis2.wsdl.codegen.extension.JiBXExtension.engage(JiBXExte
> nsion.java:74)
> at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGener
> ationEngine.java:177)
> ... 2 more
> I made it also in unwrapped mode and there was no problem with that.
--
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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org