cancel
Showing results for 
Search instead for 
Did you mean: 

SAP XI client calling axis webservice

Former Member
0 Kudos

Hallo,

i have the problem, that the sent xml-message from SAP XI will not be processed from my tomcat-webserver. In SOAP-Monitor the Status stays "active", allthough the requestdata doesn´t seem to be dirty. When i try it with my Java-Client, i have no problems. SAP XI is sending data of type String[] and String[][].

I still tried out all kinds of webservice types(rpc,document,wrapped).

So, has anybody a hint?

Thanks!

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Cien dobre Andrzej,

thank you for your answer. here is zhe way i did it:

1. Implement busines method foo(String a[],String b[][],String c[][])

2. generate wsdl with java2wsdl, several times with different styles

3. generate classes with wsdl2java

4. Deploy on tomcat

Then i sent the wsdl to our XI-Specialist and he did all the work on SAP-side.

When he send a request, i see the following on my SOAPMonitor:

<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelop/'>

<SOAP:Header/>

<SOAP:Body>

<ns0:performSAPBestellanstossRequest xmlns:ns0='bestellanstoss'>

<kopfdaten>

<item>4500190535</item>

<item>0000554132</item>

<item>Wilhelm, Andreas</item>

<item>2216</item>

</kopfdaten>

<positionen>

<item>

<item>00010</item>

</item>

</positionen>

<stueckliste>

<item>

<item>00010</item>

</item>

</stueckliste>

</ns0:performSAPBestellanstossRequest>

</SOAP:Body>

</SOAP:Envelope>

<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelop/'>

<SOAP:Header/>

<SOAP:Body>

<ns0:performSAPBestellanstossRequest xmlns:ns0='bestellanstoss'>

<a>

<item>4500190535</item>

<item>0000554132</item>

<item>Wilhelm, Andreas</item>

<item>2216</item>

</a>

<b>

<item>

<item>00010</item>

</item>

</b>

<c>

<item>

<item>00010</item>

</item>

</c>

</ns0:performSAPBestellanstossRequest>

</SOAP:Body>

</SOAP:Envelope>

This request will not be processed:

When i use my generated AXIS-Client i see the following request data, that will be processed:

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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<nsl:performSAPBestellanstoss soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:nsl="bestellanstoss">

<a xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[2]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

<item xsi:type="xsd:string">xxxxxx</item>

<item xsi:type="xsd:string">xxxxxx</item>

</a>

<b xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[][1]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

<item xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[][2]">

<item xsi:type="xsd:string">xxxxxx</item>

<item xsi:type="xsd:string">xxxxxx</item>

</item>

</b>

<c xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[][1]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

<item xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[][2]">

<item xsi:type="xsd:string">xxxxxx</item>

<item xsi:type="xsd:string">xxxxxx</item>

</item>

</c>

</nsl:performSAPBestellanstoss>

</soapenv:Body>

</soapenv:Envelope>

So maybe you can give me more hints

Regards Ralf

Andrzej_Filusz
Contributor
0 Kudos

I'm not sure where is the problem: you have a different procedure

and in your case, you have more steps then me,

so there are more points where things could go wrong.

But is it a problem for you to go to your XI-Specialist

and ask him to generate WSDL (from Integration Directory) for you?

You could use it to generate Web Service code again.

I suppose this time you won't have any problems.

Andrzej

Andrzej_Filusz
Contributor
0 Kudos

Hi!!!

I don't know if I can help you but I used SAP XI/SOAP adapter/Axis in different projects, so here are my hints (sorry if you find them a little infantile):

1. use Directory (Tools --> Define Web Service) to generate WSDL file

2. use WSDL2java tool from Axis to generate java code from your WSDL file

3. add your business logic to java code

4. compile all your code

5. deploy it

As I said I used this procedure many times and it always worked fine.

Sometimes I used TCPMonitor (between SOAP adapter and Axis) to see SOAP messages.

Did you create your Web Service in the same way?

Please give me more details.

Regards,

Andrzej