on 08-01-2007 10:31 AM
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>
Alejandro,
where is the retun type in WSDL which you pasted. you can paste the return method and object
Regards
Sreeram.G.Reddy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.