cancel
Showing results for 
Search instead for 
Did you mean: 

Define Webservie in Configuration-Clarification.

Former Member
0 Kudos

Hi,

I have a web-service client to file scenario. The call is async. Is it possible to have async call in this scenario?

I designed following interfaces:

1."studentList_outbound_async" under System_X_DEV (Sender ser vice).

2."customerList_inbound_async" under System_Y_DEV (Receiver Service).

I did the necessary message mapping and interface mapping in the repository.

In the Configuration part, I defined a sender soap adapter under the sender service with the following configuraiton.

1.Default Interface Name :studentList_outbound_async

2.Quality of service: Exactly Once (for asynchronous communication)

Also, at the configuration part, I defined Web Service as :

The URL of Integration Server SOAP inbound channel : http://fcldx101.efi.com:8000/XISOAPAdapter/MessageServlet?channel=:<studentList_outbound_async>:<Sys...;

Interface in Integration repository : studentList_outbound_async

I specified the sender and the interface.

Am I specifying the parameters correctly?

I created the wsdl with the wizard, and saved to desktop.

I tried to create new soap reque in xml spy, but it prompts to select of soap operation name, but the the choice is empty. Basically, I am unable to create new soap request for the wsdl I created with the help of wizard.When I tried to open the wsdl in a debugger mode, it says "Could not find any porst in the wsdl file".

Can anyone clarify on this topic??

Thanks

Karma

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Answers (6)

Answers (6)

Former Member
0 Kudos

Hey Praveen,

After I changed the port number, and recreated the wsdl. Now, it works. Thanks for your help.

Karma

Former Member
0 Kudos

I fixed the query error. Now, I am getting the following error:

org.apache.commons.httpclient.HttpException :

<?xml version='1.0'?>

<!-- see the documentation -->

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

<SOAP:Body>

<SOAP:Fault>

<faultcode>SOAP:Server</faultcode>

<faultstring>Server Error</faultstring>

<detail>

<s:SystemError xmlns:s='http://sap.com/xi/WebService/xi2.0'>

<context>XIAdapter</context>

<code>ModuleUnknownException</code>

<text><![CDATA[

com.sap.aii.af.mp.module.ModuleException: either no channelID specified or no channel found for the specified party, service, and channel name, MessageServlet(Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#14 $)

at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:380)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

]]></text>

</s:SystemError>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

I guess the client is not invoking the right communcation channel. Any suggestions for this kind of error?

Thanks.

Karma

Former Member
0 Kudos

Hi Praveen,

Thanks for you help. I guess something is not right with the XML SPY, with Oxygen I could generate a soap request as follow:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP-ENV:Header/>

<SOAP-ENV:Body>

<studentList xmlns="urn:efi:xi:systemx">

<student xmlns="">

<name>Karma</name>

<sid>Ghale</sid>

</student>

</studentList>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

When I send this request, I get an error: "Query string contains invalid character:<"

I am not sure why? Does anyone know why?

Thanks again.

Karma

Former Member
0 Kudos

Hi Karma,

I can see 2 things which are different from one of my earlier WSDLs.

The port should 5<XX>00, where as XX is the system number. It shud be the J2EE port, not the HTTP port, 8000.

And the channel shud be ":System_X_DEV:SystemX_Sender_Soap_channel"

Re-generate the WSDL with the above changes and test it.

praveen

Former Member
0 Kudos

Hi Praveen,

Yeah, the WSDL is well-formed and valid. I checked it in XML SPY.

Still the option for soap operation is not shown.

Thanks a gain.

Karma

Former Member
0 Kudos

Hi Karma,

I've some problem with my XMLSPY. The WSDL you gave is not validated by my XMLSPY. I had same problem with one of my earlier WSDLs. So, I switched to <a href="http://www.oxygenxml.com">OXYGEN XML editor</a>. Your WSDL works perfectly fine and I can generate the SOAP request.

So, I cant help you on XMLSPY issue

Try it on OXYGEN.

praveen

Former Member
0 Kudos

Hi Praveen,

Thanks for your information. As I mentioned earlier, I created WSDL through wizard. While testing, I am trying to create a soap request for the WSDL file in XML SPY, but I don't see any option to select soap operaion in the dailog box. Any suggestion on why the soap operation is not shown in the dialog box that prompts to selet the soap operation.

There is where I am stuck.

Thanks again.

Karma

Former Member
0 Kudos

Hi,

Did you check if your WSDL is well-formed and Valid??

If yes, you will be able to see the operation.

praveen

Former Member
0 Kudos

Hi there,

Thanks for your suggestions. Things are clearer to me about exposing XI design objecst as web-services, but I still cant test using the xml spy. I am having following issues.

I have configured as follow to expose design objects a web-service:

1.Inbound SOAP URL: http://fcldx101.efi.com:8000/XISOAPAdapter/MessageServlet?channel=:<System_X_DEV>:<SystemX_Sender_So...;

2.Interface : studentList_outbound_async

3.Sender Service: System_X_DEV

4.Sender Interface: studentList_outbound_async

Does the interface name in step 2 and 4 have to be same in this scenario?What is the difference between these two interfaces?

This is the WSDL i get:

-


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

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:p1="urn:efi:xi:systemx" name="studentList_outbound_async" targetNamespace="urn:efi:xi:systemx">

<wsdl:types>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:efi:xi:systemx" targetNamespace="urn:efi:xi:systemx">

<xsd:element name="studentList" type="studentList_dt" />

<xsd:complexType name="student_dt">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

a6f76092b9da11da9b5dc4190a0a2b2d

</xsd:appinfo>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="name" type="xsd:string">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

a6f76090b9da11da9d21c4190a0a2b2d

</xsd:appinfo>

</xsd:annotation>

</xsd:element>

<xsd:element name="sid" type="xsd:string">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

a6f76091b9da11dacf57c4190a0a2b2d

</xsd:appinfo>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="studentList_dt">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

cf165f91b9da11dab038c4190a0a2b2d

</xsd:appinfo>

</xsd:annotation>

<xsd:sequence>

<xsd:element name="student" type="student_dt" minOccurs="0" maxOccurs="unbounded">

<xsd:annotation>

<xsd:appinfo source="http://sap.com/xi/TextID">

cf165f90b9da11da8d09c4190a0a2b2d

</xsd:appinfo>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

</wsdl:types>

<wsdl:message name="studentList">

<wsdl:part name="studentList" element="p1:studentList" />

</wsdl:message>

<wsdl:portType name="studentList_outbound_async">

<wsdl:operation name="studentList_outbound_async">

<wsdl:input message="p1:studentList" />

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="studentList_outbound_asyncBinding" type="p1:studentList_outbound_async">

<soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http" />

<wsdl:operation name="studentList_outbound_async">

<soap:operation xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="http://sap.com/xi/WebService/soap1.1" />

<wsdl:input>

<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal" />

</wsdl:input>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="studentList_outbound_asyncService">

<wsdl:port name="studentList_outbound_asyncPort" binding="p1:studentList_outbound_asyncBinding">

<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://fcldx101.efi.com:8000/XISOAPAdapter/MessageServlet?channel=:&lt;System_X_DEV&gt;:&lt;SystemX_Sender_Soap_channel&gt;&amp;version=3.0&amp;Sender.Service=System_X_DEV&amp;Interface=urn%3Aefi%3Axi%3Asystemx%5EstudentList_outbound_async" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

-


I save this in the local machine, opened up IDE XML SPY version 4.3.

I went to SOAP-->Create new soap request for the wsdl File I created. It promts for "Please select for soap operation name", but the dialog box is empty. Any help on this??

When I tried to open Soap-->Soap debugger session for the wsdl file, it says "Couldn't find any ports in the WSDL file!". Any help on this again???

Am I missing something??

Karma

Former Member
0 Kudos

Hi,

You need to specify the web service action/operation for which the SOAP request needs to generated. In general, a particular web service will have multiple actions eg. calculator has actions viz. add, multiply etc.

But XI exposed web services will have only one action in it. So, you just need to select the action/operation (click on) 'studentList_outbound_async' on one of the windows. And then click on 'Create SOAP Request'

praveen