I have a soap request declared like so:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
>
<soap:Body xmlns:myResource="example.org/api/soap/myResource">
<myResource:create_resource>
<myResource:myResourcesList>
<myResource:myResource>
<myResource:title>FIRST TITLE</myResource:title>
</myResource:myResource>
<myResource:myResource>
<myResource:title>SECOND TITLE</myResource:title>
</myResource:myResource>
</myResource:myResourceList>
</myResource:create_resource>
</soap:Body>
</soap:Envelope>
I want to write a WSDL file that would handle such requests. Let's say I have declared basic definitions and models:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions
name="mySoapApi"
targetNamespace="http://example.org/api/soap/?wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding"
xmlns:soap12env="http://www.w3.org/2003/05/soap-envelope"
xmlns:tns="http://example.org/api/soap/?wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
<wsdl:types>
<xs:schema targetNamespace="http://example.org/api/soap/?wsdl">
<xs:complexType name="myResource">
<xs:sequence>
<xs:element name="title" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="myResource" type="tns:myResource"/>
<xs:complexType name="myResourceList">
<xs:sequence>
<xs:element name="myResource" type="tns:myResource" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:element name="myResourceList" type="tns:myResourceList"/>
<xs:complexType name="createMyResourceListResponse">
<xs:sequence>
<xs:element name="myResourceList" type="tns:myResourceList"/>
</xs:sequence>
</xs:complexType>
<xs:element name="createMyResourceListResponse" type="tns:myResourceList"/>
</xs:schema>
</wsdl:types>
I have a few problems with this.
I don't know how to handle the namespace declared in request body tag:
<soap:Body xmlns:myResource="example.org/api/soap/myResource">
<myResource:create_resource>
<myResource:myResourcesList>
<myResource:myResource>
<myResource:title>FIRST TITLE</myResource:title>
</myResource:myResource>
<myResource:myResource>
<myResource:title>SECOND TITLE</myResource:title>
</myResource:myResource>
</myResource:myResourceList>
</myResource:create_resource>
</soap:Body>
I understand, that each Type and operation should be declared in proper namespace in WSDL file. How to do that? How to write WSDL file so in response for this request I would get something like:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
>
<soap:Body xmlns:myResource="example.org/api/soap/myResource">
<myResource:created_resource>
<myResource:myResourcesList>
<myResource:myResource>
<myResource:title>FIRST TITLE</myResource:title>
</myResource:myResource>
<myResource:myResource>
<myResource:title>SECOND TITLE</myResource:title>
</myResource:myResource>
</myResource:myResourceList>
</myResource:created_resource>
</soap:Body>
</soap:Envelope>
Where the main thing is that myResource:create_resource is changed to myResource:created_resource? (let's say that the logic behind creating resources is executed correctly)
Related
Not looking to do anything spectacular here, just looking for, really, any sort of simple xslt which will run from xsltproc and give reasonably interesting output -- but simple.
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ ls
a.xslt shiporder.xml
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ cat shiporder.xml
<?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>John Smith</orderperson>
<shipto>
<name>Ola Nordmann</name>
<address>Langgt 23</address>
<city>4000 Stavanger</city>
<country>Norway</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ trang shiporder.xml shiporder.xsd
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ ls
a.xslt shiporder.xml shiporder.xsd xsi.xsd
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ cat shiporder.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xs:import namespace="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="xsi.xsd"/>
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element ref="orderperson"/>
<xs:element ref="shipto"/>
<xs:element maxOccurs="unbounded" ref="item"/>
</xs:sequence>
<xs:attribute name="orderid" use="required" type="xs:integer"/>
<xs:attribute ref="xsi:noNamespaceSchemaLocation" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="address"/>
<xs:element ref="city"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:NCName"/>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element minOccurs="0" ref="note"/>
<xs:element ref="quantity"/>
<xs:element ref="price"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string"/>
<xs:element name="quantity" type="xs:integer"/>
<xs:element name="price" type="xs:decimal"/>
</xs:schema>
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ cat xsi.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xs:import schemaLocation="shiporder.xsd"/>
<xs:attribute name="noNamespaceSchemaLocation" type="xs:NCName"/>
</xs:schema>
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ cat a.xslt
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:copy-of select="unparsed-text(static-base-uri())"/>
</xsl:template>
</xsl:stylesheet>
thufir#dur:~/jaxb/ship$
thufir#dur:~/jaxb/ship$ xsltproc a.xslt shiporder.xml > output.xml
compilation error: file a.xslt line 1 element stylesheet
xsl:version: only 1.1 features are supported
xmlXPathCompOpEval: function static-base-uri not found
XPath error : Unregistered function
xmlXPathCompiledEval: evaluation failed
no result for shiporder.xml
thufir#dur:~/jaxb/ship$
The xml is from w3school -- frankly, just looking to generate some sort of output using xsltproc, which means xslt version 1, I believe.
xsltproc uses the libxsltprocessor which supports only XSLT 1.0 or 1.1 (in some configurations).
Your XSLT contains:
<xsl:copy-of select="unparsed-text(static-base-uri())"/>
static-base-uri() is an XPath 2.0 function, and your processor cannot handle it - which is why you see:
xmlXPathCompOpEval: function static-base-uri not found
XPath error : Unregistered function
Note that unparsed-text() is an XSLT 2.0 function and you would get an error with it too, if the processor ever got that far.
just looking to generate some sort of output using xsltproc
Try the identity transform for starters?
I'm trying to create Jax-ws WebServices. But stuck with this behaviour of JAX-WS 2.2.
I wrote the SEI class in the following way
#WebService
#SOAPBinding(parameterStyle=ParameterStyle.WRAPPED,use=Use.LITERAL,style=Style.DOCUMENT)
public class WebServicesServlet{
#WebMethod
public GetServerTimeProperty getServerTimeProperties(){
return new GetServerTimeProperty();
}
}
The generated wsdl for the above SEI is as follows:
<types>
<xsd:schema>
<xsd:import namespace="http://soapCl.test/" schemaLocation="WebServicesService_schema1.xsd"/>
</xsd:schema>
</types>
<message name="getServerTimeProperties">
<part name="parameters" element="tns:getServerTimeProperties"> </part>
</message>
<message name="getServerTimePropertiesResponse">
<part name="parameters" element="tns:getServerTimePropertiesResponse"> </part>
</message>
And the XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://soapCl.test/" version="1.0" targetNamespace="http://soapCl.test/">
<xs:element name="getTimeProperties" type="tns:getServerTimeProperties"/>
<xs:element name="getTimePropertiesResponse" type="tns:getServerTimePropertiesResponse"/>
<xs:complexType name="getServerTimeProperties">
<xs:sequence/>
</xs:complexType>
**<xs:complexType name="getServerTimePropertiesResponse">**
<xs:sequence>
**<xs:element name="return" type="tns:getServerTimeProperty" minOccurs="0"/>**
</xs:sequence>
</xs:complexType>
<xs:complexType name="getServerTimeProperty">
<xs:sequence>
<xs:element name="dayLightSavingHours" type="xs:int"/>
<xs:element name="observesDayLightSavings" type="xs:boolean"/>
<xs:element name="timeZoneDisplayName" type="xs:string"/>
<xs:element name="timeZoneId" type="xs:string"/>
<xs:element name="timeZoneValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
SOAP Response :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<dlwmin:getServerTimePropertiesResponse xmlns:dlwmin="http://soapCl.test/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<GetServerTimeProperty>
<dayLightSavingHours>0</dayLightSavingHours>
<observesDayLightSavings>false</observesDayLightSavings>
</GetServerTimeProperty>
</dlwmin:getServerTimePropertiesResponse>
</soapenv:Body>
</soapenv:Envelope>
I've tried to generate stubs using wsimport and this is what I could observe in the generated port class
#WebMethod
**#WebResult(targetNamespace = "")**
#RequestWrapper(localName = "getServerTimeProperties", targetNamespace = "http://soapCl.test/", className = "soapCl.test.GetServerTimeProperties")
#ResponseWrapper(localName = "getServerTimePropertiesResponse", targetNamespace = "http://soapCl.test/", className = "soapCl.test.GetServerTimePropertiesResponse")
#Action(input = "http://soapCl.test/WsSessionEJBEndPoint/getServerTimePropertiesRequest", output = "http://soapCl.test/WsSessionEJBEndPoint/getServerTimePropertiesResponse")
public GetServerTimeProperty getServerTimeProperties();
I'm curious to Know why is the WebResult name different in wsdl as "return" and in soap Response as "GetServerTimeProperty" and in generated stub as "".
Also If I dont annotate the Webmethod with #WebResult(name="GetServerTimeProperty"), my stub-generated client response is null.
If I annotate my webmethod with #WebResult(name="GetServerTimeProperty"), my soapResponse is looking as follows:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns2:getServerTimePropertiesResponse xmlns:ns2="http://soapCl.test/">
<return>
<dayLightSavingHours>0</dayLightSavingHours>
<observesDayLightSavings>false</observesDayLightSavings>
</return>
</ns2:getServerTimePropertiesResponse>
</soapenv:Body>
</soapenv:Envelope>
Is #WebResult(name) is mandatory in jax-ws? I'm curios to Know how this webresult annotation is making a difference in soap response and client response.
Is is that the name should be unique for every "operationName"+"Respone" element ? My wsdl has many elements with same name as
Please Suggest on this why the WebResult name returning soap response as null if we dont annotate
I Further ruled out this
1.When two webmethods methods have same #WebResult(name="A"), the soapResponse result name differs for two methods when I mention
<wsdl-file>web-inf/wsdl/WebService.wsdl</wsdl-file>
explicitly in webservices.xml.
2.The SoapResponse return name is same when I remove the <wsdl-file> entry in webservices.xml. Not sure how wsdl-file tag is making the difference.
I have to generate separate wsdl for separate client.
entry.xsd -> entry.wsdl
migration.xsd -> migration.wsdl
I am using spring boot contract frist approach for generating wsdl from xsd definition. Problem is type are same for both xsd fiels like: credential, so I want to create a common xsd file and include/import in both xsd so can reduce redundant code.
like common.xsd -> entry.xsd, migration.xsd
but getting exception or soap client giving invalid error message.
Any help, how to generate wsdl from two xsd where one is base xsd file?
It's giving, failed to update interface. InvalidFormatException from SOAP Client.
entry.sxd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.test.com/idms-ws"
targetNamespace="http://www.test.com/idms-ws"
elementFormDefault="qualified">
<xs:include schemaLocation="common-element.xsd"></xs:include>
<xs:element name="updateMigrationStatusRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="credential" type="tns:credential" minOccurs="0"/>
<xs:element name="referenceNo" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
common-element.xsd
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="credential">
<xs:sequence>
<xs:element name="loginName" type="xs:string" minOccurs="0"/>
<xs:element name="password" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
I have following example xml message:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<to>...</to>
<from>...</from>
<id>..</id>
<relatesTo>...</relatesTo>
<action>...</action>
<version>...</version>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<customComplexElement>
<a>a_v</a>
<b>b_v</b>
<c>c_v</c>
<d>d_v</d>
<e>e_v</e>
<f>f_v</f>
</customComplexElement>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
From which I have generated a xsd file with use of one of online tools:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"></import>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="id" type="xs:string"/>
<xs:element name="relatesTo" type="xs:string"/>
<xs:element name="action" type="xs:string"/>
<xs:element name="version" type="xs:string"/>
<xs:element name="customComplexElement">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="a"/>
<xs:element type="xs:string" name="b"/>
<xs:element type="xs:string" name="c"/>
<xs:element type="xs:string" name="d"/>
<xs:element type="xs:string" name="e"/>
<xs:element type="xs:string" name="f"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Then I generate the appropriate header file with wsdl2h.exe and then compile it with soapcpp2.exe compiler.
Then I try to read xml file with a function soap_read_customComplexElement() and all I get is SOAP_TAG_MISMATCH. This method seems to work if I get rid of all the soap stuff the message but I wonder if there are some functions in gSOAP to parse soap envelope, header and body?
I've had same problem. But i've just fixed it.
So, in my case i use this line of code.
struct soap *soap = soap_new1(SOAP_C_UTFSTRING | SOAP_XML_IGNORENS | SOAP_XML_TREE);
The key paramter is SOAP_XML_IGNORENS. This parameter ignore namespaces.
SOAP_XML_IGNORENS in: ignores the use of XML namespaces in input
The root of this problem is that you don't declare namespaces in your body content. That why gSoap don't know how to convert this xml.
This wouldn't be converted, because gSoap don't know what is ns4:
<ns4:ParseKeywords><ns4:Keyword>Hello</ns4:Keyword></ns4:ParseKeywords>
But if i declare namespace it will be converted
<ns4:ParseKeywords xmlns:ns4="com.idurdyev.idcommerce:ParseKeywords:1.0"><ns4:Keyword>Hello</ns4:Keyword></ns4:ParseKeywords>
I have two environments - local and UAT which are a SOAP web service is deployed on WAS 7. The response in the local env. is proper as it sends only the fault but the uat is sending what is sent in the request + fault which is undesirable
LOCAL
request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://xmlns.scania.com/logistics/schema/transport/v1">
<soapenv:Body>
<v1:TransportInformationRequest>
<!--1 or more repetitions:-->
<v1:ChassisNumber>9181398</v1:ChassisNumber>
</v1:TransportInformationRequest>
</soapenv:Body>
</soapenv:Envelope>
response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Faults indicating that the consumer agent is failed by a authentication or authorization mechanism.</faultstring>
<detail>
<SecurityFault>
<FaultTypeDescription>Faults indicating that the consumer agent is failed by a authentication or authorization mechanism.</FaultTypeDescription>
<CustomMessage>Security header not present in the SOAP request</CustomMessage>
</SecurityFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
UAT
request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://xmlns.scania.com/logistics/schema/transport/v1">
<soapenv:Header/>
<soapenv:Body>
<v1:TransportInformationRequest>
<!--1 or more repetitions:-->
<v1:ChassisNumber>9181398</v1:ChassisNumber>
</v1:TransportInformationRequest>
</soapenv:Body>
</soapenv:Envelope>
response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://xmlns.scania.com/logistics/schema/transport/v1">
<soapenv:Body>
<v1:TransportInformationRequest>
<!--1 or more repetitions:-->
<v1:ChassisNumber>9181398</v1:ChassisNumber>
</v1:TransportInformationRequest>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Faults indicating that the consumer agent is failed by a authentication or authorization mechanism.</faultstring>
<detail>
<SecurityFault>
<FaultTypeDescription>Faults indicating that the consumer agent is failed by a authentication or authorization mechanism.</FaultTypeDescription>
<CustomMessage>Security header not present in the SOAP request</CustomMessage>
</SecurityFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
The only difference we could spot was the local env. returns 3 namespaces xsd, xsi and soapenc in soapenvelope while UAT returns only v1 namespace.
The WSDL is :
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="TransportInformationService" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://xmlns.scania.com/logistics/schema/transport/v1"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:fault="http://xmlns.scania.com/common/schema/fault/v4"
xmlns:tns="http://xmlns.scania.com/logistics/contract/transport/v1"
xmlns:tns1="http://xmlns.scania.com/productdev/contract/part/v1"
targetNamespace="http://xmlns.scania.com/logistics/contract/transport/v1">
<types>
<xsd:schema>
<xsd:import namespace="http://xmlns.scania.com/logistics/schema/transport/v1"
schemaLocation="logistics_transport_v1.xsd" />
</xsd:schema>
</types>
<message name="GetTransportInformationRequest">
<part element="sch:TransportInformationRequest" name="parameters" />
</message>
<message name="GetTransportInformationResponse">
<part element="sch:TransportInformationResponse" name="parameters" />
</message>
<message name="EmptyChasisInformationFault">
<part element="sch:EmptyChasisFault" name="fault" />
</message>
<message name="UnknownServerFault">
<part name="UnknownServerFault" element="sch:UnknownServerFault" />
</message>
<message name="RequestMessageFormatFault">
<part name="RequestMessageFormatFault" element="sch:RequestMessageFormatFault" />
</message>
<message name="NonExistingEntityFault">
<part name="NonExistingEntityFault" element="sch:NonExistingEntityFault" />
</message>
<message name="SystemResourceUnavailableFault">
<part name="SystemResourceUnavailableFault" element="sch:SystemResourceUnavailableFault" />
</message>
<message name="SecurityFault">
<part name="SecurityFault" element="sch:SecurityFault" />
</message>
<portType name="TransportInformationDelegate">
<operation name="GetTransportInformation">
<input message="tns:GetTransportInformationRequest" />
<output message="tns:GetTransportInformationResponse" />
<fault message="tns:EmptyChasisInformationFault" name="EmptyChasisInformationFault"/>
<fault name="SystemResourceUnavailableFault" message="tns:SystemResourceUnavailableFault"/>
<fault name="NonExistingEntityFault" message="tns:NonExistingEntityFault"/>
<fault name="RequestMessageFormatFault" message="tns:RequestMessageFormatFault"/>
<fault name="UnknownServerFault" message="tns:UnknownServerFault"/>
<fault name="SecurityFault" message="tns:SecurityFault"/>
</operation>
</portType>
<binding name="TransportInformationPortBinding" type="tns:TransportInformationDelegate">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="GetTransportInformation">
<soap:operation
soapAction="http://xmlns.scania.com/logistics/contract/transport/v1/GetTransportInformation" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
<fault name="EmptyChasisInformationFault">
<soap:fault name="EmptyChasisInformationFault" use="literal" />
</fault>
<fault name="SystemResourceUnavailableFault">
<soap:fault name="SystemResourceUnavailableFault" use="literal"/>
</fault>
<fault name="NonExistingEntityFault">
<soap:fault name="NonExistingEntityFault" use="literal"/>
</fault>
<fault name="RequestMessageFormatFault">
<soap:fault name="RequestMessageFormatFault" use="literal"/>
</fault>
<fault name="UnknownServerFault">
<soap:fault name="UnknownServerFault" use="literal"/>
</fault>
<fault name="SecurityFault">
<soap:fault name="SecurityFault" use="literal"/>
</fault>
</operation>
</binding>
<service name="TransportInformationService">
<port binding="tns:TransportInformationPortBinding" name="TransportInformationPort">
<soap:address
location="http://localhost:9081/SoleilWS.WEB/TransportInformationService" />
</port>
</service>
</definitions>
The xsd :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" xmlns:types="http://ws.soleil.scania.com/"
xmlns="http://xmlns.scania.com/logistics/schema/transport/v1"
targetNamespace="http://xmlns.scania.com/logistics/schema/transport/v1">
<xs:complexType name="chassisInfo">
<xs:sequence>
<xs:element name="ChassisNumber" type="xs:int" />
<xs:element name="TransportLegs" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="From" type="xs:string" />
<xs:element name="To" type="xs:string" />
<xs:element name="OutsideEU" type="xs:boolean" />
<xs:element name="ModeOfTransport" type="xs:string" />
<xs:element name="NameOfTransport" type="xs:string"
minOccurs="0" />
<xs:element name="NationalityOfTransport" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:annotation>
<xs:documentation>Two character ISO 3166-1 code for the
nationality of the transport
</xs:documentation>
</xs:annotation>
<xs:length value="2" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Departure" type="xs:dateTime"
minOccurs="0" />
<xs:element name="EstimateTimeOfArrival" type="xs:dateTime"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="TransportInformationRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="ChassisNumber" type="xs:int" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TransportInformationResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="Chassis" type="chassisInfo" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="EmptyChasisFault">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="message" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="CustomMessage">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:simpleType name="FaultTypeDescription">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:element name="RequestMessageFormatFault">
<xs:complexType>
<xs:sequence>
<xs:element
fixed="Request message format validation fault. Note that there may be other fault message types capturing faults for more specific request message problems."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SystemResourceUnavailableFault">
<xs:complexType>
<xs:sequence>
<xs:element
fixed="Faults which are of temporary character and not caused by incorrect request messages. This message may be used to communicate that the client can expect an invocation with the same request message to work at a later time. Example: required resource of the service realization, such as a database or another service, is temporarily inaccessible."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UnknownServerFault">
<xs:complexType>
<xs:sequence>
<xs:element
fixed="Faults which are not classified to any other category. Note that there may be, although so should be avoided when possible, other undeclared fault message types as well."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NonExistingEntityFault">
<xs:complexType>
<xs:sequence>
<xs:element
fixed="Faults indicating that the request message is referencing an entity not existing in the service datastore."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InvalidReferenceFault">
<xs:complexType>
<xs:annotation>
<xs:documentation>This fault may be extended using specific faults
for specific, or specific groups of, foreign keys.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element
fixed="Faults indicating that the entity contained in the request has an invalid reference to another entity."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NotSupportedForEntityStateFault">
<xs:complexType>
<xs:annotation>
<xs:documentation>This fault may be extended using specific faults
for specific, or specific groups of, state-machine rules.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element
fixed="Faults indicating that the operation issued on an entity is not permitted due to the state of the same entity."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SecurityFault">
<xs:complexType>
<xs:annotation>
<xs:documentation>This fault may be extended for specific security
faults. Remember, however, that revealing too much information on
the inner workings of a security mechanism in fault messages may
risk the security of the solution.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element
fixed="Faults indicating that the consumer agent is failed by a authentication or authorization mechanism."
name="FaultTypeDescription" type="FaultTypeDescription" />
<xs:element minOccurs="0" name="CustomMessage" type="CustomMessage" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Why the difference between the responses ?
What is the difference in the environments? Check the WAS service pack level, JVM service pack level, feature pack versions, WAS config, etc. Do both environments have the same network access?
Do your logfiles show any differences? Perhaps you can increase logging levels or turn on WAS tracing to identify the cause of the errant behaviour.