My apologies, the following description is involved and requires some study.
I have run into a problem with JibX. I using version 1.1.5 as that is the version installed with Axis 2.1.4. However I feel the issue is with my bindings an not an axis issue. I have a large collection of binding files. A simple one is given here: ---------------------------------------------------------------------------- ------ <binding direction="both" value-style="attribute"> <namespace uri="http://www.opentravel.org/OTA/2003/05" default="elements"/> <include path="OTA_AirCommonTypes.xml"/> <mapping name="OTA_PingRQ" class="uk.co.xact.ota.OTA_PingRQ"> <value name="EchoToken" field="echoToken" usage="optional"/> <value name="TimeStamp" field="timeStamp" usage="optional"/> <value name="Target" field="target" deserializer="uk.co.xact.ota.commonTypes.oTA_PayloadStdAttributes.Target.get " usage="optional"/> <value name="Version" field="version"/> <value name="TransactionIdentifier" field="transactionIdentifier" usage="optional"/> <value name="SequenceNmbr" field="sequenceNmbr" usage="optional"/> <value name="TransactionStatusCode" field="transactionStatusCode" deserializer="uk.co.xact.ota.commonTypes.oTA_PayloadStdAttributes.Transactio nStatusCode.get" usage="optional"/> <value name="RetransmissionIndicator" field="retransmissionIndicator" usage="optional"/> <value name="PrimaryLangID" field="primaryLangID" usage="optional"/> <value name="AltLangID" field="altLangID" usage="optional"/> <value name="EchoData" field="echoData" style="element"/> </mapping> </binding> ---------------------------------------------------------------------------- ------ As you see, the top level name OTA_PingRQ is mapped to uk.co.xact.ota.OTA_PingRQ. In my test code I use the following line to get the binding factory: bindingFactoryRQ = BindingDirectory.getFactory(OTA_PingRQ.class); My basic questions is why bindingFactoryRQ.getElementNames() return an array of null values. The mapping OTA_PingRQ is not abstract. The method bindingFactoryRQ.getElementNamespaces() also returns an array of nulls. But this might be expected since the mapping is in the default namespace. Despite this, my junit test to marshal and unmarshal sample xml files works fine. But thing go wrong for axis2. The issue here is that within the AXIS skeleton code for the service it uses the following code in the MessageReceiverInOut class: ---------------------------------------------------------------------------- -------- private org.apache.axiom.om.OMElement mappedChild(Object value, org.apache.axiom.om.OMFactory factory) { org.jibx.runtime.IMarshallable mrshable = (org.jibx.runtime.IMarshallable)value; org.apache.axiom.om.OMDataSource src = new org.apache.axis2.jibx.JiBXDataSource(mrshable, bindingFactory); int index = mrshable.JiBX_getIndex(); org.apache.axiom.om.OMNamespace appns = factory.createOMNamespace(bindingFactory.getElementNamespaces()[index], ""); return factory.createOMElement(src, bindingFactory.getElementNames()[index], appns); } ---------------------------------------------------------------------------- -------- The call to factory.creatOMNamespace() throws an NPE because bindingFactory.getElementNamespaces()[index] = null. I am using the WSDL2JAVA code generator with the following 'top-level' binding file: ---------------------------------------------------------------------------- -------- <binding direction="both" value-style="attribute"> <namespace uri="http://www.opentravel.org/OTA/2003/05" default="elements"/> <include path="../../gensrc/jibx/OTA_PingRQ.xml"/> <include path="../../gensrc/jibx/OTA_PingRS.xml"/> </binding> ---------------------------------------------------------------------------- -------- The type section of the WSDL file is: ---------------------------------------------------------------------------- -------- <wsdl:types> <xs:schema> <xs:import namespace="http://www.opentravel.org/OTA/2003/05" schemaLocation="http://www.xact.co.uk/ota/OTA_PingRQ.xsd"/> <xs:import namespace="http://www.opentravel.org/OTA/2003/05" schemaLocation="http://www.xact.co.uk/ota/OTA_PingRS.xsd"/> </xs:schema> </wsdl:types> ---------------------------------------------------------------------------- -------- Any pointers on why the array values are all null would be most appreciated. Regards Paul ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ jibx-users mailing list jibx-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jibx-users