cancel
Showing results for 
Search instead for 
Did you mean: 

PI Server Error and authentication issue.

0 Kudos

Dear Experts,

i have scenario to post XML payload on PI 7.1 URL.

I used the test tool for testing http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/66dadc6e-0a01-0010-9ea9-bb6d8ca48...

And it is working. I can post XML and i got the result.

It asks for authentication (Username & PW), but i need to post without any authentication.

Now, as per vendor request to provide them URL without "&" , i tried to post XML message on http://server:port/XISOAPAdapter/MessageServlet?channel=:BS_AD:CC_AD_PN_SENDER.

but i got the following strange error message.

Result:

<?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>ADAPTER.JAVA_EXCEPTION<;/code>

<text><![CDATA[

java.lang.NullPointerException: while trying to invoke the method java.lang.String.indexOf(int) of an object loaded from local variable 'ctype'

at com.sap.aii.af.sdk.xi.net.MIMEInputSource.decodeContentType(MIMEInputSource.java:454)

at com.sap.aii.af.sdk.xi.net.MIMEInputSource.readBody(MIMEInputSource.java:351)

at com.sap.aii.af.sdk.xi.net.MIMEServletInputSource.parse(MIMEServletInputSource.java:58)

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

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:163)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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:71)

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:71)

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:71)

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

at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222)

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:152)

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

]]></text>

</s:SystemError>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Possible cause could be with RFC issue on ECC System

check this on ECC system

- SLDCHECK if SLD can be launched fine

- SLDAPICUST T-code if that maintained correctly for SLD

-  Check HTTP RFC on ECC and ABAP connection RFC on PI system to ECC

Regards

Sahil

Former Member
0 Kudos

Dear Abo

Can you please elaborate on the point that the client requires the username and password not to be a part of URL or be not used at all (i.e no authentication)

Second the HTTP tool you are using is used to hit the integration engine from the tool and hence you have to provide the username and password to login, can you clarify the exact meaning of

but i need to post without any authentication

0 Kudos

Thanks Sourabh Nirmal for your reply.

For first point .

Yes we need "no authentication". for that i select "HTTPS without client authentication" for HTTP Security Level in sender soap communication.

I have developed java class to post the xml on http://server:port/XISOAPAdapter/MessageServlet?channel=:BS_AD:CC_AD_PN_SENDER.

but i got the following error message: EXCEPTION : java.io.IOException: Server returned HTTP response code: 401 for URL: http://server:port/XISOAPAdapter/MessageServlet?channel=:BS_AD:CC_AD_PN_SENDER.

Same java class working fine on the first URL: http://server:port/sap/xi/adapter_plain?namespace=**&interface=*&service=&party=&agency=&scheme=&sap-user=*&sap-password=***&sap-client=130&sap-language=EN

also it is working fine with test tool as well.

Regards,

Former Member
0 Kudos

HTTPS without client authentication

When you define one of these security levels for a sender channel, only those messages that have been sent by using an HTTP connection with at least this security level are accepted by the Integration Server or Adapter Engine. If the security level of the HTTP connection is lower than the one defined for the sender channel, messages are rejected with an HTTP error. See also SAP Note 891877