cancel
Showing results for 
Search instead for 
Did you mean: 

Problem on xMII Message Service

Former Member
0 Kudos

Hello, there!

I am trying to use xMII's 12.0 Message Services.

What I've done so far was:

- Created a Rule that should get a 'test' message, put it on a 'MessageTest' transaction parameter and redirect it to it

- On the workbench, I've created this 'MessageTest' transaction, with a 'ReadMessage' action that reads the parameter and writes it to a file

- Created a web form that posts an xml message to http://myServer:myPort/XMII/Illuminator?service=WSMessageListener&mode=WSMessageListenerServer&NAME=...

-After invoking this form, I received a "Sucessfully received webservice message" message back

But, not to my surprise, nothing happened. Neither I can see the message on Message Monitor, nor the file (the result from the transaction) is created.

Searching on the logs, I've seen these messages, which I suspect might be related to the problem:

Exception of type com.sap.sql.log.OpenSQLException caught: Cannot assign an empty string to host variable 6..

Processing HTTP request to servlet [CMSAdmin] finished with error. The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIllegalStateException: The output is committed.

* at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:354)*

* at com.sap.xmii.servlet.Admin.service(Admin.java:84)*

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

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

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

* at com.sap.xmii.system.SecurityFilter.doFilter(SecurityFilter.java:100)*

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

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

* 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)*

Does anyone have a clue on what might be happening?

Thanks a lot in advance!

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member193328
Active Participant
0 Kudos

Hi

If this is still not answered I guess the reason is that the message payload is blank. If there is no message in the payload then it might throw an exception.

Try putting in a valid XML in the Post action payload and then executing it. if you have already tried it can you send me your transaction that fails and I can check it out.

Best regards

Partha

Former Member
0 Kudos

Partha,

the call to the WSMessageListener must be set to content type text/xml, if you send a xml file as payload. Then the error will disappear. MII uses the content-type application/x-www-form-urlencoded as a default, which does not work with "flat" payload.

Michael

former_member193328
Active Participant
0 Kudos

Hi Eduardo

I dont think this is the problem.

You may search for anything like "WSMessageListenerServer" in the log as thats the class that gets called when a message is posted.

Best regards

Partha

Former Member
0 Kudos

Partha,

Do you know where specifically should I look at to find these logs?

I haven't found anything yet...

Thanks for your help!

Former Member
0 Kudos

Hello, guys!

I finally found out where the problem is:

Could not save webservice message to the database

[EXCEPTION]

com.sap.sql.log.OpenSQLException: Cannot assign an empty string to host variable 6.

* at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)*

* at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)*

* at com.sap.sql.types.ClobResultColumn.setCharacterStream(ClobResultColumn.java:173)*

* at com.sap.sql.types.ClobResultColumn.setString(ClobResultColumn.java:161)*

* at com.sap.sql.jdbc.common.CommonPreparedStatement.setString(CommonPreparedStatement.java:511)*

* at com.sap.sql.sqlj.runtime.profile.ref.RTStatementJDBCPrepared.setString(RTStatementJDBCPrepared.java:359)*

* at com.sap.xmii.databuffer.sqlj.JCoDAO.saveWSMessageToDB(JCoDAO.sqlj:411)*

* at com.sap.xmii.databuffer.server.WSMessageServer.run(WSMessageServer.java:186)*

* at java.util.TimerThread.mainLoop(Timer.java:432)*

* at java.util.TimerThread.run(Timer.java:382)*

I couldn't solve it yet, though.

Any ideas?

Former Member
0 Kudos

Hi Eduardo,

did you ever solve this? I am running into the same error with 12.0.2.

Is there are means to get the WSMessageListener running? I used the HTTP Post action but always get the error.

Michael

Former Member
0 Kudos

I think you have to send a valid xml document with the message.

Former Member
0 Kudos

Michael,

I using in WSMessageListener in some example and works fine. The only different is, that I have/had

this running with 12.0.4 >=.

Example:

1. Sequence with a TagQuery.

2. Sequence with a HTTP-Post.

3. Link the TagQuery.Result to the HTTP-Post.PostData.

4. Configure the HTTP-Post like this URL example:


http://<ServerName>:<Port>/XMII/Illuminator?Service=WSMessageListener&Mode=WSMessageListenerServer&Name=yourMessageName

5. Execute the trx.

If all will work fine, you will find the Message under "Messages Without Rules".

Hope this will help you a little.

Cheers

Pedro

Former Member
0 Kudos

Ok, It doesnt have to be xml, but you do have to post something.

I just posted without any content and I got the same error. Using the HTTP Post action you need something in the document or PostData.

Edited by: Christian Libich on Dec 8, 2008 11:07 PM

Former Member
0 Kudos

Pedro, Christian,

thanks for answering.

I used the URL mentioned in the SAP help (same as Pedro included). As NAME I used the name of an existing Message Rule.

Then I filled the PostData in the link editor with either String or xml data, but the error remains.

I will try again tomorrow, maybe I have customized something wrong at the first try. Would be nice if it worked, as we are looking for an alternative to call a BLT directly as a webservice.

Michael

Former Member
0 Kudos

I am sure you did this, but just to be sure, you will need to provide a valid username and password when you post. Sometimes in 11.5 calls to the localhost wouldn't require it but 12.0+ does.