I am using the SOAPGateway to call a web service. The web service was built from a Natural subprogram using EntireX XML Wrapper and the assist function of Mediator studio was used to build the SagSoapGateway step… Everything worked fine on my development desktop PC, but when deployed on a laptop an IllegalArgumentException is thrown by Mediator. I have tried regenerating and redeploying all artefacts on the laptop (idl, xmm, wsdl) but still get the error.
Can anybody advise on what is causing this problem and how to solve it?
Thanks in advance,
David Sanders
Error reported in DefaultComponentFactory.xbd.log:
slf5s.start]25 Nov 2005 09:39:04,937[slf5s.DATE]Thread-4[slf5s.THREAD]ERROR[slf5s.PRIORITY]xbd[slf5s.CATEGORY]- SagSequencer - 1bf7b23~107c6c7f4f0~~7fe7 - SEQUENCER ERROR: sequence "http://localhost:8080/MMA-XBD/XBDTestSequence.xml", line 17, <step>: invalid QName local part[slf5s.MESSAGE]
java.lang.IllegalArgumentException: invalid QName local part
at javax.xml.namespace.QName.<init>(QName.java:75)
at javax.xml.namespace.QName.<init>(QName.java:60)
at org.apache.axis.message.PrefixedQName.<init>(PrefixedQName.java:30)
at org.apache.axis.message.MessageElement.copyNode(MessageElement.java:2044)
at org.apache.axis.message.MessageElement.copyNode(MessageElement.java:1997)
at org.apache.axis.message.MessageElement.<init>(MessageElement.java:195)
at org.apache.axis.message.SOAPBodyElement.<init>(SOAPBodyElement.java:70)
at com.softwareag.xbridge.soapgateway.SoapGatewayImpl.prepareRPCCall(DashOB6501:950)
at com.softwareag.xbridge.soapgateway.SoapGatewayImpl.modify(DashOB6501:690)
at com.softwareag.xbridge.infrastructure.y.modify(DashOB6501:56)
at com.softwareag.xbridge.sequencer.KeywordSTEP.execute(DashOB6501:233)
at com.softwareag.xbridge.sequencer.SequencerImpl.execute(DashOB6501:1081)
at com.softwareag.xbridge.sequencer.SequencerImpl.dispatch(DashOB6501:753)
at com.softwareag.xbridge.infrastructure.ac.perform(DashOB6501:278)
at com.softwareag.xbridge.util.WorkerThread.run(DashOB6501:459)
SagSoapGatewayStep in the Mediator sequence looks like this:
<step component="SagSoapGateway"
xbd.soap.arg0.DateFormatRequest="//DateFormatType"
xbd.soap.handlefault="false"
xbd.soap.operation="{{http://www.mma-insurance.co.uk/webservices}}WS0001N"
xbd.soap.port.qn="{{http://namespace.softwareag.com/entirex/xml/mapping}}XBD-WSPort"
xbd.soap.res0.DateTimeResponse="//Response"
xbd.soap.service.qn="{{http://namespace.softwareag.com/entirex/xml/mapping}}xbd-ws"
xbd.soap.session="false" xbd.soap.style="rpc"
xbd.soap.wsdl.url="file:/C:/Apache/jakarta-tomcat-4.1.29/webapps/entirex/XBD-WS.wsdl"
xbd.zid="N400002"/>
The wsdl file:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated Nov 25, 2005 9:34:44 AM by Software AG SOAP Toolkit Wizard, Version 7.2.1.0 Build: 2004-09-14 12:44 -->
<definitions name="XBD-WS" targetNamespace="http://namespace.softwareag.com/entirex/xml/mapping" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://namespace.softwareag.com/entirex/xml/mapping">
<types>
<schema targetNamespace="http://namespace.softwareag.com/entirex/xml/mapping" xmlns="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="DateTimeResponse">
<xsd:sequence>
<xsd:element name="Date" type="xsd:string"/>
<xsd:element name="Time" type="xsd:decimal"/>
<xsd:element name="Timezone" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</schema>
</types>
<message name="WS0001N">
<part name="DateFormatRequest" type="xsd:string"/>
</message>
<message name="WS0001NResponse">
<part name="DateTimeResponse" type="tns:DateTimeResponse"/>
</message>
<portType name="XBD-WSPort">
<operation name="WS0001N">
<input message="tns:WS0001N"/>
<output message="tns:WS0001NResponse"/>
</operation>
</portType>
<binding name="XBD-WSSoapBinding" type="tns:XBD-WSPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="WS0001N">
<soap:operation soapAction="WS0001N"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.mma-insurance.co.uk/webservices"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.mma-insurance.co.uk/webservices"/>
</output>
</operation>
</binding>
<service name="xbd-ws">
<port name="XBD-WSPort" binding="tns:XBD-WSSoapBinding">
<soap:address location="http://localhost:8080/entirex/xmlrt"/>
</port>
</service>
</definitions>