cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP Sender message not reaching PI

Former Member
0 Kudos

I am doing a SOAP to ECC scenario. The sender application is B2B and it is outside the system landscape. I created WSDL and gave them. They are sending messages but it is not reaching PI. It's working fine from SOAP UI when I test from the lan

The WSDL has URL http://pihost:port/...

The IT team says that is an inside url and cano't be accessed from outseide. They say they have a seperate URL b2b.xyz.com for accessing the website. But that doesn't mention PI.

How do I give URL to the SOAP B2B client. should i edit the generated url in WSDL from PO

Accepted Solutions (0)

Answers (4)

Answers (4)

manoj_khavatkopp
Active Contributor
0 Kudos

Midhun,

Try this :

  • In Sender Agreement select the option   " Publish  in SR ".
  • Then select options and Override the WSDL , HTTP and HTTPS with your Public URL. , then provide the new URL from Service registry to the B2B , By doing this you are not exposing your PI system to external client.

Br,

Manoj

Former Member
0 Kudos

This url would be http or https? So I have to share this with sender and ask IT to open the port for this?

manoj_khavatkopp
Active Contributor
0 Kudos

Its depends on how you want to connect you can select either HTTP or HTTPS , as you have mentioned you have web dispatcher then instead of putting public host and port put the webdispatcher and port and provide that url to B2B .

Former Member
0 Kudos

So I have to the give the webdispatcher https url and port. After tht share it with the sender. I will have to configure this in webdispatcher as well. Also the remaining part of the url remains same, right

http:host:port/ after this the same thing?

former_member182412
Active Contributor
0 Kudos

Hi Midhun,

  • B2B side also they need to adjust the firewall changes to open the PI public IP address and PI Port
  • Your side also allow the B2B IP address in your firewall rules.

Regards,

Praveen.

former_member182412
Active Contributor
0 Kudos

Hi Midhun,

  • Is your web dispatcher can access from out side your network?? if yes then only you need to include it in the URL.
  • The URL will be same only the host name will be change.
  • You just need to include public IP address into the URL.

Regards,

Praveen.

Former Member
0 Kudos

Hi Praveen

Yes, my webdispatcher is accessible from outside the network

This is the wsdl URL that I generated from ICO http://host:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_WebService&receiverPart...

Should I substitute the IP of webdispatcher instead of host and use same port 50,000 and give the same URL to B2B soap sender?

Or like Manoj said, do I have to publish in SR and fthen give the new url?

former_member182412
Active Contributor
0 Kudos

Hi Midhun,

You need to replace host and port of web dispatcher in the original URL which you taken from ICO.

http://webdispatcher-host:webdispatcher-port/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_WebService&receiverParty=&receiverServic...

Regards,

Praveen.

Former Member
0 Kudos

Hi Praveen, Manoj

The BASIS confiugured this URL and said messages will be redirected to PI. This URL is not in conformity with the URL generated in PI Integration Builder WSDL

It's like this

http://b2b.mycompany.com:port/abc

here abc is the name of the second company

they are sayinhg if we use this url it will hit the PI server , the wsdl I generated has a URL and is mapped in websipacther

is it fine, this arrangement

former_member182412
Active Contributor
0 Kudos

Hi Midhun,

  • Did you test with the above URL??
  • Yes if the request come from above URL http://b2b.mycompany.com:port/abc then internally they are forwarding the request to your actual PI end point.

Regards,

Praveen.

Former Member
0 Kudos

I am getting an error,

CPAObjectNotFoundException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=null;TS=;AN=null;ANS=null;

  at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:250)

GauravKant
Contributor
0 Kudos

Hi Midhun,

PFB thread. it might help to resolve the issue.

Regards,

Gaurav

former_member182412
Active Contributor
0 Kudos

Hi Midhun,

Are you testing internally?? the request must come from externally, so you need to test while you connecting to VPN, you cant test this while you are already in the network.

Regards,

Praveen.

Former Member
0 Kudos

I tested it from outside the network. I am not even getting a hit on the PI server

I went outside the network, in IE, opened the link

http://b2b.mycompany.com/abc

it asks for the userid and passworde, I enter PI id and password and i get

200 Message servlet is in status 200

I guess the same is happening when I send message from soap UI too but I am not able to reach PI.

they are saying webdispatcher is NOT exposed to outside as in webdispatcher do not have a public ip,

the b2b.mycompany is the company web address

Former Member
0 Kudos

Hi Gaurav

There is nothing wrong with my webservice or wsdl.

It is working perfectly when i trigger messages from inside the LAN.

I am facing error only when the message is sent from internet,

manoj_khavatkopp
Active Contributor
0 Kudos
I guess the same is happening when I send message from soap UI too but I am not able to reach PI.

What response do u see in SOAP UI when u trigger from external network using webdispatcher URL ?

Former Member
0 Kudos

I get this error

com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=null;TS=;AN=null;ANS=null;

  at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:250)

  at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:171)

  at com.sap.aii.af.service.cpa.InboundRuntimeLookup.<init>(InboundRuntimeLookup.java:88)

  at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBinding(AbstractLookupManager.java:597)

  at com.sap.aii.adapter.soap.web.MessageServlet.getBinding(MessageServlet.java:755)

  at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:422)

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

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

  at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)

  at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)

  at com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)

  at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)

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

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

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

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

  at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:278)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)

  at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)

  at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)

  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)

  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)

  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)

  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)

  at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

  at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)

  at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)

  at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)

  at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)

  at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)

  at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)

  at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)</text>

Snavi
Active Participant
0 Kudos

Hi Midhun,

If you are getting this message in soapui from outside your network, then that means it is hitting the pi server.

try with forming the url like

http://b2b.mycompany.com/abc?senderParty=<name of the sender party>&senderService=<name of the sender service>&interface=<name of the interface>&receiverParty=<name of the receiver party>&receiverService=<name of the receiver service>&interfaceNamespace=<name of the interface namespace>

replace the text <> with actual values from your interface

former_member182412
Active Contributor
0 Kudos

Hi Midhun,

Check the HTTP responses log as per my blog, i think the query parameters are not coming to PI, you need to speak to network team are they forwarding the request right URL??

Regards,

Praveen.

iaki_vila
Active Contributor
0 Kudos

Hi Midhun,

You have two options that they require the action of your IT team:

1. They provide an outside URL to the B2B team and they redirect the request to the PI with the PI WSDL URL and credentials.

2. They open the port and the URL of PI WSDL scenario only for an IP of the B2B team.

You can't do anything for you only.

Regards.

Former Member
0 Kudos

Hi Inaki

We have a web dispatcher in our LAN. Will it help. The IT teams insists that they can share only an https URL.

The WSDL have two URLs, one a HTTPS URL. Can I share this URL to the sender? The port in uRL is 50000. When I say, IT team doesn't understand they say we can open only 443 port. This is PI port. Some suggestions please

GauravKant
Contributor
0 Kudos

Hi Midhun,

Hope, you have provided URL from sender agreement to SOAP team.

They have to add the service at their end using SOAP user credentials of PI.

Please provide log if any from SOAP end.

Regards,

Gaurav

former_member186851
Active Contributor
0 Kudos

Hello Midhun,

Tell the network team to enable traffic from the B2B client so that thy can send data as you do in SOAP UI.