WSDL contains ArrayOf<outputDocumentListName> as elementName...

Hi,

I have a IS service which have 3 input(String type) and 1 documentList which contain 3 fields as output.(DocumentList name IT_RATES) which i have given by referring an existing IS document.

I have created a Provider webservice descriptor- and generated the WSDL.

In the WSDL I find the below been created…

<xsd:complexType name=“exchangeRateRequest”>
xsd:sequence
<xsd:element name=“fromCurrency” nillable=“true” type=“xsd:string” minOccurs=“0” />
<xsd:element name=“toCurrency” nillable=“true” type=“xsd:string” minOccurs=“0” />
<xsd:element name=“requestDate” nillable=“true” type=“xsd:string” minOccurs=“0” />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name=“exchangeRateResponse”>
xsd:sequence
<xsd:element name=“IT_RATES” nillable=“true” type=“tns:ArrayOfIT_RATES” />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name=“IT_RATES”>
xsd:sequence
<xsd:element name=“fromCurrency” nillable=“true” type=“xsd:string” minOccurs=“0” />
<xsd:element name=“toCurrency” nillable=“true” type=“xsd:string” minOccurs=“0” />
<xsd:element name=“exchangeRate” nillable=“true” type=“xsd:string” minOccurs=“0” />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name=“ArrayOfIT_RATES”>
xsd:sequence
<xsd:element name=“ArrayOfIT_RATESItem” type=“tns:IT_RATES” maxOccurs=“unbounded” />
</xsd:sequence>
</xsd:complexType>

Since the name ArrayOfIT_RATESItem(which is automatically generated) this is reflected when connector as well…

My input is to the webservice is 3 input(String type) and 1 documentList which contain 3 fields as output.(DocumentList name IT_RATES).

But the connector which have been created doesnot match the output…
output shows …
as

tns: exchangeRateResponse

  • IT_RATES(single element)
    • ArrayOfIT_RATESItem(documentList) - This is according to WSDL not actual output of webservice
      • element1
      • element2
      • element3

I tried to rename in wsdl but its throwing me exception
"Could not run ‘ProviderWS_PortType_getDailyLexmarkExchangeRate’.
com.wm.app.b2b.server.ServiceException: [ISS.0088.9139] Output parameters do not conform to targetOutputSignature:
errorCode=VV-005
pathName=/tns:exchangeRateResponse/IT_RATES/IT_RATE_TAB
errorMessage=[ISC.0082.9034] Field is absent, field must exist
errorCode=VV-002
pathName=/tns:exchangeRateResponse/IT_RATES/ArrayOfIT_RATESItem
errorMessage=[ISC.0082.9026] Undefined Object found
errorCode=VV-002
pathName=/tns:exchangeRateResponse/IT_RATES/ArrayOfIT_RATESItem
errorMessage=[ISC.0082.9026] Undefined Object found
"

I am using webMethods 7.1

Could anyone help me in figuring out this cause.

Thanks in advance.

Hiubert

Do you see any errors while executing connector?

No there are no errors while executing the connector.

I get the desired output. but the problem is rather than getting the documentlist named IT_RATES which was defined in the webservice output it have the name ArrayIT_RATESITEM.

Best Regards
Hiubert

Hi Hiubert,

Have you able to find the solutions?
Would you help me, I have the same problem with you too…

Thanks a million.

Best Regards,
Neni Adiningsih

Hi Neni

still fighting with this problem.

It works when we declare it as document.

But when declared as documentlist only we get this problem.

I will reply you if I get the answer for this query.

Best Regards
Hiubert

Not sure if this is webMethods’ recommended solution or not, but you can get around this by modifying the document type used by the output and setting “Allow unspecified fields” to be true.

In my opinion, this is a bug. But I’m sure if you ask the knowledgeable folks at Software AG support they’d say it was a feature.

Apply the fix: IS_7-1-1_WebSvcsXML_Fix11

Go through the below post

http://wmusers.com/forum/showthread.php?p=63519#poststop

From Software AG - https://advantage.webmethods.com/knowledgebase?oid=1614334178

Are the ArrayOfXXX types causing you issues? I know from a consumption standpoint a .Net client simply strips them out causing no issue. Axis probably does the same. If it does you can also do as the article suggest and do your WSDL first and have it generate the provider stub for you.

For each document list or string list, the ArrayOfXXX types generated by IS will appear in the input/output documents of consumers without applying the fix.

It is supposed to get wrapped / unwrapped by Integration server. Applying the fix will solve the issue. The ArrayOfXXX segments will not appear in in/out documents of generated consumers once applying the fix IS_7-1-1_WebSvcsXML_Fix11 in wM 711 version.

Solves the problem with IS connector clients not unwrapping the ArrayOfXXX types. IS will still put ArrayOfXXX types in the WSDL that it generates as designed. This fix will just allow the webMethods IS connector to invoke it successfully.

webMethods support says putting the ArrayOfXXX wrappers in the generated WSDL is working as designed. However they also said they may change this in the 8.x releases.

Yes. I accept. It will put ArrayOfXXX types in wsdl but i mean to say, it wont be visible in input output signatures of web service connectors after applying the fix.

Thank You,
Senthil