cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP To File Interface - How to trace?

Former Member
0 Kudos

Hi all,

I've built the following interface:

Outbound communication channel: SOAP Sender

Outbound Interface: MI_Outbound_PatientDemographics

Mode: Asynchronous

Inbound Communication channel: File Receiver

Inbound Interface: MI_Inbound_NauticusGetPatientInfoReq

Mode: Asynchronous

I generated a .WSDL file for this interface.

==================== START Generated WSDL file ===============

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

<wsdl:definitions name="MI_Outbound_PatientDemographics" targetNamespace="urn:fapl:oots:xi:testNamespace1" xmlns:p2="http://new.webservice.namespace" xmlns:p1="urn:fapl:oots:xi:testNamespace1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><wsdl:types><xsd:schema targetNamespace="http://new.webservice.namespace" xmlns="http://new.webservice.namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="GetPatientDemographicReq"><xsd:annotation><xsd:documentation>Request Message</xsd:documentation></xsd:annotation><xsd:complexType><xsd:sequence><xsd:element name="Header" form="qualified"><xsd:complexType><xsd:all><xsd:element name="Encoding" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="SendingApp" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="SendingFac" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="ReceivingApp" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="ReceivingFac" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="TimeStamp" type="xsd:dateTime" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="MessageType" type="xsd:string" minOccurs="0" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="MessageId" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="MessageDesc" type="xsd:string" minOccurs="0" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /></xsd:all></xsd:complexType></xsd:element><xsd:element name="PatientID" type="xsd:string" minOccurs="0" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="InstitutionID" type="xsd:string" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /><xsd:element name="SAPPatientID" type="xsd:string" minOccurs="0" form="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></wsdl:types><wsdl:message name="p2.GetPatientDemographicInput"><wsdl:part name="GetPatientDemographicReq" element="p2:GetPatientDemographicReq" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" /></wsdl:message><wsdl:portType name="MI_Outbound_PatientDemographics"><wsdl:operation name="MI_Outbound_PatientDemographics"><wsdl:input message="p1:p2.GetPatientDemographicInput" /></wsdl:operation></wsdl:portType><wsdl:binding name="MI_Outbound_PatientDemographicsBinding" type="p1:MI_Outbound_PatientDemographics" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" /><wsdl:operation name="MI_Outbound_PatientDemographics"><soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" /><wsdl:input><soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" /></wsdl:input></wsdl:operation></wsdl:binding><wsdl:service name="MI_Outbound_PatientDemographicsService"><wsdl:port name="MI_Outbound_PatientDemographicsPort" binding="p1:MI_Outbound_PatientDemographicsBinding" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><soap:address location="<b>http://ootspdbs02:8001/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&amp;version=3.0&amp;Sender.Service=DummyService&amp;Interface=DummyNamespace%5EDummyInterface</b>" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" /></wsdl:port></wsdl:service></wsdl:definitions>

==================== END Generated WSDL file ===============

I've tested the following address:

http://ootspdbs02:8001/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&amp;versio...

After logging in with user: pisuper, I see a page:

Message Servlet is in Status OK

Status information:

Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/xi/NW04S_06_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#3 $) bound to /MessageServlet

Classname ModuleProcessor: null

Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean

Lookupname for remoteModuleProcessorLookupName: null

ModuleProcessorClass not instantiated

ModuleProcessorLocal is Instance of com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0

ModuleProcessorRemote not instantiated

The problem:

When I try to test this WebService using XMLSpy, by loading the generated WSDL file into XMLSpy, and sending the request, I get an almost immediate response -

<b>HTTP error: could not POST file

'/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&amp;version=3.0&amp;Sender.Service=DummyService&amp;Interface=DummyNamespace%5EDummyInterface' on server 'ootspdbs02' (0)</b>

And a second alert box in XMLSpy shows:

The web service has sent an empty response!

This is an asynchronous interface, so I assume there will be no response anyway.

But when I go to SXMB_MONI and I filter for "Processed XML Messages", I cannot see any message.

The output file was not generated as well.

May I know :

1. How I can trace if the message entered my web service?

2. What do the error messages mean?

Please help.

Thanks.

Ron

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

HI wee chong,

I am facing the same issue when i try to test the saop sender using XML spy , Can you please share me the procedure how you fixed the issue ?

waiting for your response...

Thanks

Sangeet

deviprasad_pothireddy
Active Participant
0 Kudos

Hi Wee Chong,

(For test purpose)

Ref this weblog /people/community.user/blog/2006/12/12/http-to-rfc--a-starter-kit

Directly put your payload in Test Message and check the file at receiver side.

if it works fine( there is error info while generating the wsdl) else there might be configuration error.

Regards,

Deviprasad.

Former Member
0 Kudos

Hi Wee Chong,

I am facing the same issue , Using XML spy trying to send the soap request to PI server but i am getting the msg " the webservice has sent an empty response " but if i looked at the messaging system the message id generated but no data. .

Can you please tell me how you solved the issue ? Waiting for your response

Thanks

Sangeet

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

As you are making an Asynch call from the webservice, you need to add the following parameter to your WSDL's URL,

<b>&QualityOfService=ExactlyOnce</b>

After you make this change in the paramter, the call will become a Asynch Call.

Now, the call is being triggered as a synch call as the QOS is not set in the URL and so you are getting the empty response message. Also, make sure Synch Looging is turned on on your server. SXMB_ADM --> Integration Engine Configuration --> LOGGING_SYNC should be 1.

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

Thank you for your reply.

I've done the following changes:

1. Change the "Quality of Service" in "Communication Channel" to "exactly once".

2. Regenerate the WSDL.

3. Update the URL on the WSDL to:

<b>http://ootspdbs02:8001/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&amp;version=3.0&amp;QualityOfService=ExactlyOnce&amp;Sender.Service=dummysvc&amp;Interface=dummyNS%5EdummyInterface</b>

4. Inserted a new logging configuration -

Category: Runtime

Parameters: LOGGING_SYNC

Current_Value: 1

However, I still encounter the same error -

HTTP error: could not POST file

'/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&amp;version=3.0&amp;QualityOfService=ExactlyOnce&amp;Sender.Service=dummysvc&amp;Interface=dummyNS%5EdummyInterface' on server ootspdbs02 (0)

And

"The web service has sent an empty response!"

Please point out my mistake.

Thanks.

Ron

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

1. In the URL you have posted, please check the port. The Port should be your J2EE port.

2. Also, append &QualityOfService="ExactlyOnce" to the URL.

h...ootspdbs02:<b>J2EEPORT</b>/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&version=3.0&QualityOfService=ExactlyOnce&Sender.Service=dummysvc&Interface=dummyNS%5EdummyInterface<b>&QualityOfService=ExactlyOnce</b>

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

1. I got the port using SMICM. It says HTTP port is 8001. Am I referring to the correct port?

By the way, I could see the status of the servlet as OK, so I assumed the port is correct.

2. I've added the <b>&QualityOfService="ExactlyOnce"</b> already.

'/XISOAPAdapter/MessageServlet?channel=:BS_NAUTICUS_OOTS:SOAP_Sender&version=3.0<b>&QualityOfService=ExactlyOnce</b>&Sender.Service=dummysvc&Interface=dummyNS%5EdummyInterface' on server ootspdbs02 (0)

Did I do anything wrong?

Please advise.

Ron

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

You should not use the HTTP port.You should use the J2EE port . The port which you find in your XI home page is the port to be used.

Just change the port to the J2EE port and let me know.

Another option if this doesnot work is to post the SOAP message directly to the integration engine. You can look into this blog for how to do the same,

/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine

If you decide to use this option, the port will be 8001.

Regards

Bhavesh

Former Member
0 Kudos

I can't believe it.

I used the IS URL and it STILL DOES NOT WORK

How do everyone usually test their Web services in XI?

Please advise.

Thanks.

Ron

Former Member
0 Kudos

Coudl you also please make sure that in your sender soap communication channel...the quality of service is exactly once....

Former Member
0 Kudos

Hi,

If you have WSDL for it you can test using external tools like ALTOVA XML SPY or Stylus Studio or SOAP Test tool.

Check this weblog for testing the webservices in XI:

/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services

---Satish

Former Member
0 Kudos

Hi

I am currently using XMLSpy to test the webservice exposed in XI.

Also, I've already amended the QoS in the sender channel to Exactly once.

What else did I miss?

Please help.

Thanks.

Ron

bhavesh_kantilal
Active Contributor
0 Kudos

Ron,

Did you look into Stefan's Blog I had pasted in my last reply and create the URL like it shows? Just try with the URL in stefan's blog.

Also, make sure that the user id you are using to post the SOAP request has the role of XIAPPLUSER

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh, I've tried using the Integration Engine URL instead (The method in stefan's blog).

I have a question:

When I use XMLSpy to test the web service, I am NOT prompted for a userid login/password.

Whereas when I try to copy and paste that URL in a web browser, I am prompted for a userid/pwd. After providing the userid PISUPER, I am allowed to access the page.

I'm not sure if the error I'm seeing, in anyway, linked to the login issue.

XMLSpy doesn't prompt me for any password, so it has to be taking a default, from somewhere.

Is there anythign I need to do to ensure XMLSpy uses another set of Userid/pwd?

Thanks.

Ron

Former Member
0 Kudos

Wee,

It should ask in Altova xml spy also. I have just checked now. First click on SOAP Menu --> Create new SOAP Request --> Then Browse your WSDL file --> Then once again SOAP Menu --> Send Request to Server. It prompts for userid and password. If you give this it brings back the response if you have response.

Also you can try by downloading SOAP scope which is also another test tool for testing webservices. This also asks for user id and password.

---Satish

bhavesh_kantilal
Active Contributor
0 Kudos

Ron,

Like mentioned by Satish , it normally does prombpt for the user id and password. I have used XML Spy to test my SOAP scenarios and it did prompt me for my password.

There is an option to turn off SOAP authentication if needed though.

Regards

Bhavesh