Expand my Community achievements bar.

Problems with OC4J Web services and Flex SOAPEncoder

Avatar

Former Community Member
Hello!



I got a problem trying to execute a web service running in
Oracle OC4j 10.1.3.3, and a client side with Flex3. I generated the
scripts for using the web service using Flex builder 3, but it's
not making a valid call to web service. I debugged the call
operation to the Flex SOAPEncoder which seems to generate an
invalid soap message. The SOAPEncoder generates the following
message;



<SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns="
http://www.w3.org/2001/XMLSchema"


xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">

<SOAP-ENV:Body>

<tns:getDocuments xmlns:tns="
http://modultek.atonpdm.document/">

<tns:getDocuments>

<tns:String_1>service manual</tns:String_1>

</tns:getDocuments>

</tns:getDocuments>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>



Where the correct working soap message should be;



<SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns="
http://www.w3.org/2001/XMLSchema"


xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">

<SOAP-ENV:Body>

<tns:getDocuments xmlns:tns="
http://modultek.atonpdm.document/">

<tns:String_1>service manaual</tns:String_1>

</tns:getDocuments>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>



Problem in the first message is that Flex SOAPEncoder
generates an extra <tns:getDocuments> child tag, and Oracle
app server can't handle it.



Has someone any idea why SOAPEncoder is generating the extra
operation tag, and is this behaviour configurable somehow or is the
soapencoder broken?



The wsdl is included in the following;



<?xml version="1.0" encoding="UTF-8" ?>

- <definitions xmlns="
http://schemas.xmlsoap.org/wsdl/"
xmlns:soap12="
http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:mime="
http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="
http://modultek.atonpdm.document/"
name="DocumentOperationsService" targetNamespace="
http://modultek.atonpdm.document/">

- <types>

- <schema xmlns="
http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:soap11-enc="
http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace="
http://modultek.atonpdm.document/"
elementFormDefault="qualified">

- <complexType name="SimpleDocumentDM">

- <sequence>

<element name="docGroupDesc" type="string"
nillable="true" />

<element name="docRev" type="string" nillable="true"
/>

<element name="docId" type="string" nillable="true" />


<element name="docGroup" type="string" nillable="true"
/>

<element name="docDesc1" type="string" nillable="true"
/>

<element name="docDesc2" type="string" nillable="true"
/>

<element name="docCode" type="string" nillable="true"
/>

<element name="docDesc3" type="string" nillable="true"
/>

<element name="docDesc4" type="string" nillable="true"
/>

</sequence>

</complexType>

<element name="getDocuments" type="tns:getDocuments"
/>

- <complexType name="getDocuments">

- <sequence>

<element name="String_1" type="string" nillable="true"
/>

</sequence>

</complexType>

<element name="getDocumentsResponse"
type="tns:getDocumentsResponse" />

- <complexType name="getDocumentsResponse">

- <sequence>

<element name="return"
type="tns:CollectionOfSimpleDocumentDM" nillable="true" />

</sequence>

</complexType>

- <complexType name="CollectionOfSimpleDocumentDM">

- <sequence>

<element name="item" type="tns:SimpleDocumentDM"
minOccurs="0" maxOccurs="unbounded" />

</sequence>

</complexType>

<element name="getSimpleDocumentInformation"
type="tns:getSimpleDocumentInformation" />

- <complexType name="getSimpleDocumentInformation">

- <sequence>

<element name="String_1" type="string" nillable="true"
/>

</sequence>

</complexType>

<element name="getSimpleDocumentInformationResponse"
type="tns:getSimpleDocumentInformationResponse" />

- <complexType
name="getSimpleDocumentInformationResponse">

- <sequence>

<element name="return" type="tns:SimpleDocumentDM"
nillable="true" />

</sequence>

</complexType>

</schema>

</types>

- <message name="DocumentOperations_getDocuments">

<part name="parameters" element="tns:getDocuments" />

</message>

- <message
name="DocumentOperations_getDocumentsResponse">

<part name="parameters"
element="tns:getDocumentsResponse" />

</message>

- <message
name="DocumentOperations_getSimpleDocumentInformation">

<part name="parameters"
element="tns:getSimpleDocumentInformation" />

</message>

- <message
name="DocumentOperations_getSimpleDocumentInformationResponse">

<part name="parameters"
element="tns:getSimpleDocumentInformationResponse" />

</message>

- <portType name="DocumentOperations">

- <operation name="getDocuments">

<input message="tns:DocumentOperations_getDocuments"
/>

<output
message="tns:DocumentOperations_getDocumentsResponse" />

</operation>

- <operation name="getSimpleDocumentInformation">

<input
message="tns:DocumentOperations_getSimpleDocumentInformation" />


<output
message="tns:DocumentOperations_getSimpleDocumentInformationResponse"
/>

</operation>

</portType>

- <binding name="DocumentOperationsSoapHttp"
type="tns:DocumentOperations">

<soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"
/>

- <operation name="getDocuments">

<soap:operation soapAction="" />

- <input>

<soap:body use="literal" />

</input>

- <output>

<soap:body use="literal" />

</output>

</operation>

- <operation name="getSimpleDocumentInformation">

<soap:operation soapAction="" />

- <input>

<soap:body use="literal" />

</input>

- <output>

<soap:body use="literal" />

</output>

</operation>

</binding>

- <service name="DocumentOperationsService">

- <port name="DocumentOperationsBean"
binding="tns:DocumentOperationsSoapHttp">

<soap:address location="
http://procyon:8888/atonpdm/DocumentOperationsBean"
/>

</port>

</service>

</definitions>



Best regards, Janne
1 Reply

Avatar

Level 1
I am having the exact same problem. The SOAPEncoder is adding
an additional tag and the server thinks the envelope is not
properly formatted and therefore does not know what to do with it.
Is there any fix for this yet? Or has it even been reported as a
bug?