cancel
Showing results for 
Search instead for 
Did you mean: 

No Messages when importing external definition (WSDL) from WSNavigator

Former Member
0 Kudos

Hi,

I am trying to consume a Web Service via XI, that I developed in NWDS.

I followed this blog: /people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi

And had no problems, with this simple test. But now in my WS I'm trying to use a Method which becomes an object, does some changes and returns the same object type. Its a simple class with four arrays of other objects.

I'm doing exactly the same steps (deploying, downloading WSDLs from WSNavigator, and importing into XI), but at the import in Design Time no Messages are recognized.

If I change the return type of the Method, for example to float, both messages (in and out) are recognized. I can't understand why it wouldn't work the other way...

Thanks for your help,

Alejandro

// here's the WSDL:

<?xml version="1.0" encoding="ISO-8859-1"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:DASL_CompleteOrgCtrsWSWsd/DASL_CompleteOrgCtrsWSVi/document" xmlns:ns0="urn:DASL_CompleteOrgCtrsWSVi" targetNamespace="urn:DASL_CompleteOrgCtrsWSWsd/DASL_CompleteOrgCtrsWSVi/document">

<wsdl:types>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:da.sanchezluna.organisation" targetNamespace="urn:da.sanchezluna.organisation" elementFormDefault="qualified">

<xs:complexType name="OrganisationalCentre">

<xs:sequence>

<xs:element name="costCentreID" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="iD" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="name" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="parentID" type="xs:string" nillable="true" minOccurs="0" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="CostCentre">

<xs:sequence>

<xs:element name="iD" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="name" type="xs:string" nillable="true" minOccurs="0" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="Position">

<xs:sequence>

<xs:element name="description" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="employeeID" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="iD" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="organisationalCentreID" type="xs:string" nillable="true" minOccurs="0" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="Employee">

<xs:sequence>

<xs:element name="iD" type="xs:string" nillable="true" minOccurs="0" />

<xs:element name="name" type="xs:string" nillable="true" minOccurs="0" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="Organisation">

<xs:sequence>

<xs:element name="costCentres" type="tns:ArrayOfCostCentre" nillable="true" minOccurs="0" />

<xs:element name="employees" type="tns:ArrayOfEmployee" nillable="true" minOccurs="0" />

<xs:element name="organisationalCentres" type="tns:ArrayOfOrganisationalCentre" nillable="true" minOccurs="0" />

<xs:element name="positions" type="tns:ArrayOfPosition" nillable="true" minOccurs="0" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="ArrayOfPosition">

<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="Position" type="tns:Position" nillable="true" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="ArrayOfEmployee">

<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="Employee" type="tns:Employee" nillable="true" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="ArrayOfCostCentre">

<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="CostCentre" type="tns:CostCentre" nillable="true" />

</xs:sequence>

</xs:complexType>

<xs:complexType name="ArrayOfOrganisationalCentre">

<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="OrganisationalCentre" type="tns:OrganisationalCentre" nillable="true" />

</xs:sequence>

</xs:complexType>

</xs:schema>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:DASL_CompleteOrgCtrsWSVi" xmlns:s0="urn:da.sanchezluna.organisation" targetNamespace="urn:DASL_CompleteOrgCtrsWSVi" elementFormDefault="qualified">

<xs:import namespace="urn:da.sanchezluna.organisation" />

<xs:element name="completeOrganisationalCentre">

<xs:complexType>

<xs:sequence>

<xs:element name="org" type="s0:Organisation" nillable="true" />

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="completeOrganisationalCentreResponse">

<xs:complexType>

<xs:sequence>

<xs:element name="Response" type="s0:Organisation" nillable="true" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

</wsdl:types>

<wsdl:message name="completeOrganisationalCentreIn_doc">

<wsdl:part name="parameters" element="ns0:completeOrganisationalCentre" />

</wsdl:message>

<wsdl:message name="completeOrganisationalCentreOut_doc">

<wsdl:part name="parameters" element="ns0:completeOrganisationalCentreResponse" />

</wsdl:message>

<wsdl:portType name="DASL_CompleteOrgCtrsWSVi_Document">

<wsdl:operation name="completeOrganisationalCentre">

<wsdl:input message="tns:completeOrganisationalCentreIn_doc" />

<wsdl:output message="tns:completeOrganisationalCentreOut_doc" />

</wsdl:operation>

</wsdl:portType>

</wsdl:definitions>

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Alejandro,

where is the retun type in WSDL which you pasted. you can paste the return method and object

Regards

Sreeram.G.Reddy

Former Member
0 Kudos

Hi Sreeram,

the return Type is "Organisation", the method receives and return this type.

In Java it looks like this:

public class Organisation implements java.io.Serializable {

private OrganisationalCentre[] organisationalCentres_;

private Position[] positions_;

private CostCentre[] costCentres_;

private Employee[] employees_;

// Getters and Setters...

}

Regards,

Alejandro

Former Member
0 Kudos

Hi all,

I tried with the RPC WSDLs, and it worked! The Messages are read.

But I don't know if this brings consequences. Because now I configured the process to call the WS in XI, and I get following error (checked in SXMB_MONI)

<SAP:ApplicationFaultMessage namespace="http://sap-j2ee-engine/error">com.sap.security.core.server.ws.service.WSSecurityException</SAP:ApplicationFaultMessage>

I'm testing the WS with XMLSpy, if I test the WS in WAS directly it works, if I test the call over XI it doesn't...

Anyone?

Thanks in advance,

Alejandro