cancel
Showing results for 
Search instead for 
Did you mean: 

Steps to expose a web service without using SR

Former Member
0 Kudos

Hello,

How can I expose a web service without using the service registry? Is there some documentation for this process?

Thanks,

Matt

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Unfortunately, I am not authorized to run CPA refresh and my NW Admin is out today. I have checked the cache in ID though and it says it was refreshed 1 hour ago. I ran a complete refresh in SXI_CACHE as well.

Also, my NW Admin did a full refresh yesterday when we were trying to solve this problem.

Thanks,

Matt

Former Member
0 Kudos

Hi,

Please check your target URL.

generate WSDL using this URL http://host:port/XISOAPAdapter/MessageServlet?senderParty=&senderService=<senderservice>&interface=<...; and test again.

hope this will solve your problem.

Thanks

Hamja

Answers (5)

Answers (5)

Former Member
0 Kudos

As you suggested I rechecked the URL and found that the problem was with the my receiverService. When I took out the receiverService the test worked.

I guess that lets the receiver determination specify the receiver.

Special thanks to Srinivas for hanging with me and helping me work through this problem!

Thanks,

Matt

Former Member
0 Kudos

Thanks for the response. Although, I do not have an * in the Sender Agreement.

Here is the situation:

When I attempt to reach the URL for my Web Service but using NWA instead of the Service Call I get into NWA.

https://xxxxx.steelcasedev.com/nwa

Result: Success

When I use SOAPSonar to run this URL I get the CPA error:

https://xxxxx.steelcasedev.com//XISOAPAdapter/MessageServlet?senderParty=&senderService=WSProcuremen...

Result: Error

<context>XIAdapter</context>
          <code>ADAPTER.JAVA_EXCEPTION</code>
          <text><![CDATA[
com.sap.aii.af.service.cpa.CPAException: com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=WSProcurement_Async_Sender;TS=Steelcase_SAPR3_D01;AN=WSProcurement_Out;ANS=urn:steelcase.com:wsprocurement:xml2suppliers;
	at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.checkForError(CommonLookup.java:53)
	at com.sap.aii.af.service.cpa.InboundRuntimeLookup.getBinding(InboundRuntimeLookup.java:411)
	at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBinding(AbstractLookupManager.java:714)
	at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:430)

The sender adapter is active in ID but in RTWB it is "Started but Inactive". I have found that this status could be related to the fact that I have not had a successful transaction for that channel yet.

My NW Admin says he found this error:

Marked transaction for rollback for message 0015605e-09d7-1ddf-94f7-d5031c019713(INBOUND). Reason: Channel has been configured as inactive and cannot accept messages

I am quite confused.

Thanks,

Matt

Former Member
0 Kudos

Hi matthew,

Have you done the full cache refresh.http://<XIHost>:<Port>/CPACache/refresh?mode=full

In ID please check for the cache,does it shows any inactive entry for the sender channel you have.

You might have changed the mode from inactive to active but due to cache issues its not yet activated

this is what i can figure out from the reason:Channel has been configured as inactive and cannot accept messages

Do some dummy changes in the channel, save activate .stop and restart the channel in RWB.

Regards,

Srinivas

Former Member
0 Kudos

My tests keep returning:

com.sap.aii.af.service.cpa.CPAException: com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Couldn't retrieve inbound binding for the given P/S/A values:

I was thinking it couldn't locate the services.

Any ideas?

Thanks,

Matt

Former Member
0 Kudos

Hi Mathew,

can you try refreshing the cache in full mode http://<XIHost>:<Port>/CPACache/refresh?mode=full

this is related to sender agreement , you need to remove the * character which might be there .

Please see this forum post if it helps

Regards,

Srinivas

Former Member
0 Kudos

Srinivas - I have attempted several searches on this topic and I can only find guides for using the Services Registry. That is why I posted this question.

My Netweaver Admin does not have the time to set up the Services Registry, so I need to find a way to call the service without SR. I have purchase SoapSonar and installed the WSDL. I get a "service not found" error when I attempt to call the service in PI.

Does simply having a the WSDL document allow a person (with security permissions) to call an exposed service? Or do I need to create an EndPoint?

Thanks,

Matt

Former Member
0 Kudos

Hi Mathew,

Yes, without using services registry also you can expose a web service.If you have generated the WSDL already from ID

try using [soap UI tool|http://www.soapui.org/information/Soap_Test.html?gclid=CNCa0Ku8rKECFUtB6wodCVJbFQ] to send the web service request.Upload the wsdl in soap UI it will generate a sample request1,edit the resquest,provide userID password and post.

or if you can create the proxy for the interface , then you can use soamanager(tcode),search for your service and create endpoints and then use WS navigator to test.

Please let me know if i am understanding your requirement wrongly.

Regards,

Srinivas

Former Member
0 Kudos

Hi Mathew,

You need to create you interface,once configuration is done, go do sender agreement and display WSDL.

Save the WSDL file which will have the neccessaary details to triger your interface.You can share this WSDL with

The Consumer system or test by your own by importing the WSDL in soap UI tool.

Please do a search you will get relevant blogs on this.

Reagrds,

Srinivas