cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP Adapter and StringIndexOutOfBoundsException

Former Member
0 Kudos

Hi!

I have a SOAP-> RFC scenario and I trying to send a message using both encoded header and query string but I get the following exception in the client:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1

The URL I´m trying is something like this:

http://server:8007/XISOAPAdapter/MessageServlet?channel=:PORTAL_B2B:SEND_TESTE&version=3.0&Sender.Se...

It´s a XI from SAP Netweaver2004s SP10.

I couldn´t find anything in the Message Monitoring. Please, some idea?

Thank you,

Fabiano.

The complete error stack:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1

at java.lang.String.substring(String.java:1444)

at com.sap.aii.messaging.srt.xmb.XMBMessageHeaderCodec.readValue(XMBMessageHeaderCodec.java:354)

at com.sap.aii.messaging.srt.xmb.XMBMessageHeaderCodec.decode(XMBMessageHeaderCodec.java:108)

at com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onRequestFromWS(XMBWebServiceExtension.java:592)

at com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.invokeOnRequest(XMBWebServiceExtension.java:362)

at com.sap.aii.messaging.srt.ExtensionBubble.onMessage(ExtensionBubble.java:50)

at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:906)

at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_3.process(ModuleLocalLocalObjectImpl0_3.java:103)

at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:264)

at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)

at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:174)

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

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

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

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

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

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

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

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

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

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)

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

I have the same error when I try to use dynamic interface from client. Selecting "Use encoded header" and "Use query parameter" doesn't make any difference. However, non-dynamic works fine for me.

Former Member
0 Kudos

Hi -

Have you turned on the options "Use Encoded Header" and "Use Query String" in the channel sender SOAP channel configuration?

Jin

Former Member
0 Kudos

I've seen this error a lot when working with user defined functions. Have you tested your mapping out? From the log you sent, I can't really tell if it's an error that is specific to the adapter, have you already ruled out the possibility of the error existing in the map or any user defined functions that use arrays?

Former Member
0 Kudos

Hi Harrison, thanks for the fast reply.

Well I did checked out my mappings programs (XSL) and they´re fine. The tests inside the Integration Builder are ok.

The weird thing it is the connection doesn´t even appears in the Message Monitoring. It´s seems something in the SOAP Adapter before it gets the Integration Engine. I really don´t know.

Former Member
0 Kudos

Hmmm, yes it does sound more like an adapter problem then. Go to the runtime workbench, click on component monitoring -> display. Click adapter engine, and see if anything comes up red. If you find anything there could you post here and maybe we could help troubleshoot?

Former Member
0 Kudos

Yes, the Adapter Engine is red the sequence of steps there:

2006-12-19 18:01:10 Success Message successfully received by messaging system. Profile: XI URL: http://angelim:50700/MessagingSystem/receive/AFW/XI Credential (User): J2EE_ADMIN

2006-12-19 18:32:55 Success calling the module processor for channel SEND_TESTE

2006-12-19 18:32:55 Success MP: entering

2006-12-19 18:32:55 Success MP: processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean

2006-12-19 18:32:55 Success SOAP: request message entering the adapter with user MERC_FABIANO

2006-12-19 18:32:55 Error SOAP: call failed: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

2006-12-19 18:32:55 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: String index out of range: -1: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

Former Member
0 Kudos

How have you configured the SOAP adapter? Are there any special settings or configs? Sorry for all the questions, it's just that I want to narrow this down a bit more...

Former Member
0 Kudos

No problem, you´re helping me guy

Well, no, I didn´t do any special configuration in the SOAP Adapter just the defaults.

Of course, I have checked the Use Encoded Header and Use Query String check-boxes.

Former Member
0 Kudos

Do you get the same error when just using the following:

http://server:8007/XISOAPAdapter/MessageServlet?channel=:PORTAL_B2B:SEND_TESTE

I assume you're trying to set the interface name dynamically from the client in the original case, but just wanted to check if the non-dynamic case works for you.

Regards,

Jin

Former Member
0 Kudos

Hi Jin!

You´re right, I´m trying to use dymanic interface using the URL.

When I use the non-dynamic option as you suggest it goes further in the XI. I could see my message in the Message Monitoring but I got another weird error (please see my post at: https://forums.sdn.sap.com/click.jspa?searchID=471965&messageID=2868191 )