Given that your services is DOC/Literal, the SOAP
message being sent is correct. SOAP body does not
carry an operation name in this case.
Sanjay
--- "DealRaider.com" <[EMAIL PROTECTED]> wrote:
> Hello,
>
> After installing the now-final JBoss 3.2.2 with
> embedded Tomcat and
> redeploying Axis, I'm appearing to get cleaner error
> messages.
>
> For now, I have a strange situation where the SOAP
> that is going on the
> wire is improperly formatted. It's not specifying
> the operation to call,
> only the parameters.
>
> From SOAPMonitor, it looks like this:
> <soapenv:Envelope....>
> <soapenv:Body>
> <x_GetOutstandingOrders
> xmlns="urn:LibraryDemo\srvcGeneral\srvcdoc">
>
> <PrderIdentification>0</PrderIdentification>
> </x_GetOutstandingOrders>
> </soapenc:Body>
> </soapenv:Envelope>
>
> I've attached the WSDL for the service, and I'm
> using the Axis-generated
> stubs from the WSDL. My test client is calling
>
> ElectronicMarketStub marketStub = new
> ElectronicMarketStub(new
> URL(endpoint), null);
> CollectionOfOrder coll =
> marketStub.getOutstandingOrders(new
> GetOutstandingOrders());
>
> I believe that from the WSDL this should add an
> extra element in the
> SOAP Body that specifies the operation as
> <GetOutstandingOrders>, with
> the x_GetOutstandingOrders as a parameter.
>
> I've debugged the call, and the MessageContext has
> the operationName set
> as "GetOutstandingOrders" all throughout, until it
> gets to the
> HTTPSender portion:
> if (posting) {
>
> header.append(HTTPConstants.HEADER_CONTENT_TYPE)
> .append(": ")
>
>
.append(reqMessage.getContentType(msgContext.getSOAPConstants()))
> .append("\r\n");
> }
>
> which then sets it to the SOAP you see above.
>
> Can anyone please help with why the SOAP on the wire
> would look like it
> does above rather than how it should?
>
> I've also attached the generated source for the
> relevant operation.
> Please ignore that there are \s in it, I've replaced
> these all with \\s.
>
> Thanks for your time!
>
> > <?xml version="1.0" encoding="utf-8" ?>
> <definitions
>
targetNamespace="urn:LibraryDemo\srvcGeneral\srvcdoc"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:ns="urn:LibraryDemo\srvcGeneral\srvcdoc">
> <types>
> <schema
>
targetNamespace="urn:LibraryDemo\srvcGeneral\srvcdoc"
> elementFormDefault="qualified"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:ns="urn:LibraryDemo\srvcGeneral\srvcdoc"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <complexType name="CollectionOfOrder">
> <sequence>
> <element name="Order" minOccurs="0"
> maxOccurs="unbounded" type="ns:Order"/>
> </sequence>
> </complexType>
> <complexType name="Market">
> <sequence>
> <element name="settings" minOccurs="1"
> maxOccurs="1" type="ns:TradingSettings"/>
> <element name="segments" minOccurs="1"
> maxOccurs="1" type="ns:CollectionOfSegment"/>
> </sequence>
> </complexType>
> <complexType name="CollectionOfSegment">
> <sequence>
> <element name="Segment" minOccurs="0"
> maxOccurs="unbounded" type="ns:Segment"/>
> </sequence>
> </complexType>
> <complexType name="TradingSettings">
> <sequence>
> <element name="stateCycleSpec" minOccurs="0"
> maxOccurs="1" type="xsd:string"/>
> <element name="stopTradingRange" minOccurs="0"
> maxOccurs="1" type="xsd:double"/>
> <element name="priceIncrement" minOccurs="1"
> maxOccurs="1" type="xsd:double"/>
> </sequence>
> </complexType>
> <complexType name="Segment">
> <sequence>
> <element name="name" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> <element name="settings" minOccurs="1"
> maxOccurs="1" type="ns:TradingSettings"/>
> <element name="securities" minOccurs="1"
> maxOccurs="1" type="ns:CollectionOfSecurity"/>
> <element name="market" minOccurs="1"
> maxOccurs="1" type="ns:Market"/>
> </sequence>
> </complexType>
> <complexType name="CollectionOfSecurity">
> <sequence>
> <element name="Security" minOccurs="0"
> maxOccurs="unbounded" type="ns:Security"/>
> </sequence>
> </complexType>
> <complexType name="Security">
> <sequence>
> <element name="name" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> <element name="settings" minOccurs="1"
> maxOccurs="1" type="ns:TradingSettings"/>
> <element name="segment" minOccurs="1"
> maxOccurs="1" type="ns:Segment"/>
> </sequence>
> </complexType>
> <complexType name="OrderStatus">
> <sequence>
> <element name="matchingShares" minOccurs="1"
> maxOccurs="1" type="xsd:int"/>
> <element name="order" minOccurs="1"
> maxOccurs="1" type="ns:Order"/>
> <element name="matchingPrice" minOccurs="1"
> maxOccurs="1" type="xsd:double"/>
> <element name="identification" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> <element name="matchingParty" minOccurs="1"
> maxOccurs="1" type="ns:Party"/>
> <element name="status" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> </sequence>
> </complexType>
> <complexType name="Order">
> <sequence>
> <element name="numberOfShares" minOccurs="1"
> maxOccurs="1" type="xsd:int"/>
> <element name="nominalPrice" minOccurs="0"
> maxOccurs="1" type="xsd:double"/>
> <element name="party" minOccurs="1"
> maxOccurs="1" type="ns:Party"/>
> <element name="instrument" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> </sequence>
> </complexType>
> <complexType name="Party">
> <sequence>
> <element name="name" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> <element name="identification" minOccurs="1"
> maxOccurs="1" type="xsd:string"/>
> </sequence>
> </complexType>
> <element name="x_GetOutstandingOrders"
> type="ns:GetOutstandingOrders"/>
> <complexType name="GetOutstandingOrders">
> <sequence>
> <element name="PrderIdentification"
> minOccurs="1" maxOccurs="1" type="xsd:int"/>
> </sequence>
> </complexType>
> <element name="x_GetOutstandingOrdersResponse"
> type="ns:CollectionOfOrder"/>
> <element name="x_CreateMarket"
> type="ns:CreateMarket"/>
> <complexType name="CreateMarket">
> <sequence>
> <element name="Market" minOccurs="1"
> maxOccurs="1" type="ns:Market"/>
> </sequence>
> </complexType>
> <element name="x_CreateMarketResponse"
> type="xsd:boolean"/>
> <element name="x_GetOrderStatus"
> type="ns:GetOrderStatus"/>
> <complexType name="GetOrderStatus">
> <sequence>
> <element name="OrderIdentification"
> minOccurs="1" maxOccurs="1" type="xsd:int"/>
> </sequence>
> </complexType>
> <element name="x_GetOrderStatusResponse"
> type="ns:OrderStatus"/>
> <element name="x_AddSellOrder"
> type="ns:AddSellOrder"/>
> <complexType name="AddSellOrder">
> <sequence>
> <element name="Order" minOccurs="1"
> maxOccurs="1" type="ns:Order"/>
> </sequence>
> </complexType>
> <element name="x_AddSellOrderResponse"
> type="ns:OrderStatus"/>
> <element name="x_AddBuyOrder"
> type="ns:AddBuyOrder"/>
> <complexType name="AddBuyOrder">
> <sequence>
> <element name="Order" minOccurs="1"
> maxOccurs="1" type="ns:Order"/>
> </sequence>
> </complexType>
> <element name="x_AddBuyOrderResponse"
> type="ns:OrderStatus"/>
> </schema>
> </types>
> <message name="GetOutstandingOrders">
> <part name="parameter"
> element="ns:x_GetOutstandingOrders"/>
> </message>
> <message name="GetOutstandingOrdersResponse">
> <part name="return"
> element="ns:x_GetOutstandingOrdersResponse"/>
> </message>
> <message name="CreateMarket">
> <part name="parameter"
> element="ns:x_CreateMarket"/>
> </message>
> <message name="CreateMarketResponse">
> <part name="return"
> element="ns:x_CreateMarketResponse"/>
> </message>
> <message name="GetOrderStatus">
> <part name="parameter"
> element="ns:x_GetOrderStatus"/>
> </message>
> <message name="GetOrderStatusResponse">
> <part name="return"
> element="ns:x_GetOrderStatusResponse"/>
> </message>
> <message name="AddSellOrder">
> <part name="parameter"
> element="ns:x_AddSellOrder"/>
> </message>
> <message name="AddSellOrderResponse">
> <part name="return"
> element="ns:x_AddSellOrderResponse"/>
> </message>
> <message name="AddBuyOrder">
> <part name="parameter"
> element="ns:x_AddBuyOrder"/>
> </message>
> <message name="AddBuyOrderResponse">
> <part name="return"
> element="ns:x_AddBuyOrderResponse"/>
> </message>
> <portType name="ElectronicMarket">
> <operation name="GetOutstandingOrders">
>
=== message truncated ===> /**
> * GetOutstandingOrders.java
> *
> * This file was auto-generated from WSDL
> * by the Apache Axis WSDL2Java emitter.
> */
>
> package edu.uiuc.cs427.soap;
>
> public class GetOutstandingOrders implements
> java.io.Serializable {
> private int prderIdentification;
>
> public GetOutstandingOrders() {
> }
>
> public int getPrderIdentification() {
> return prderIdentification;
> }
>
> public void setPrderIdentification(int
> prderIdentification) {
> this.prderIdentification =
> prderIdentification;
> }
>
> private java.lang.Object __equalsCalc = null;
> public synchronized boolean
> equals(java.lang.Object obj) {
> if (!(obj instanceof GetOutstandingOrders))
> return false;
> GetOutstandingOrders other =
> (GetOutstandingOrders) obj;
> if (obj == null) return false;
> if (this == obj) return true;
> if (__equalsCalc != null) {
> return (__equalsCalc == obj);
> }
> __equalsCalc = obj;
> boolean _equals;
> _equals = true &&
> this.prderIdentification ==
> other.getPrderIdentification();
> __equalsCalc = null;
> return _equals;
> }
>
> private boolean __hashCodeCalc = false;
> public synchronized int hashCode() {
> if (__hashCodeCalc) {
> return 0;
> }
> __hashCodeCalc = true;
> int _hashCode = 1;
> _hashCode += getPrderIdentification();
> __hashCodeCalc = false;
> return _hashCode;
> }
>
> // Type metadata
> private static
> org.apache.axis.description.TypeDesc typeDesc =
> new
>
org.apache.axis.description.TypeDesc(GetOutstandingOrders.class);
>
> static {
> typeDesc.setXmlType(new
>
javax.xml.namespace.QName("urn:LibraryDemo\srvcGeneral\srvcdoc",
> "GetOutstandingOrders"));
> org.apache.axis.description.ElementDesc
> elemField = new
> org.apache.axis.description.ElementDesc();
>
> elemField.setFieldName("prderIdentification");
> elemField.setXmlName(new
>
javax.xml.namespace.QName("urn:LibraryDemo\srvcGeneral\srvcdoc",
> "PrderIdentification"));
> elemField.setXmlType(new
>
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema",
> "int"));
> typeDesc.addFieldDesc(elemField);
> }
>
> /**
> * Return type metadata object
> */
> public static
> org.apache.axis.description.TypeDesc getTypeDesc() {
> return typeDesc;
> }
>
> /**
> * Get Custom Serializer
> */
> public static
> org.apache.axis.encoding.Serializer getSerializer(
> java.lang.String mechType,
> java.lang.Class _javaType,
> javax.xml.namespace.QName _xmlType) {
> return
> new
> org.apache.axis.encoding.ser.BeanSerializer(
> _javaType, _xmlType, typeDesc);
> }
>
> /**
> * Get Custom Deserializer
> */
> public static
> org.apache.axis.encoding.Deserializer
> getDeserializer(
> java.lang.String mechType,
> java.lang.Class _javaType,
> javax.xml.namespace.QName _xmlType) {
> return
> new
> org.apache.axis.encoding.ser.BeanDeserializer(
> _javaType, _xmlType, typeDesc);
> }
>
> }
>
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com