on 01-24-2007 9:08 AM
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&version=3.0&Sender.Service=DummyService&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:
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&version=3.0&Sender.Service=DummyService&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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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&version=3.0&QualityOfService=ExactlyOnce&Sender.Service=dummysvc&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&version=3.0&QualityOfService=ExactlyOnce&Sender.Service=dummysvc&Interface=dummyNS%5EdummyInterface' on server ootspdbs02 (0)
And
"The web service has sent an empty response!"
Please point out my mistake.
Thanks.
Ron
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
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
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
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
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
User | Count |
---|---|
93 | |
11 | |
10 | |
9 | |
9 | |
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.