cancel
Showing results for 
Search instead for 
Did you mean: 

Payload Logging with Groovy Script: java.lang.NoSuchMethodException: No signature of method

floriangu
Participant
0 Kudos

Hello,

I am trying to log payloads in an integration flow using the following code in a groovy script step:import com.sap.gateway.ip.core.customdev.util.Message;

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
    def body = message.getBody(java.lang.String) as String;
    def messageLog = messageLogFactory.getMessageLog(message);
    if(messageLog != null){
        messageLog.addAttachmentAsString("Payload", body, "text/plain");
     }
    return message;
}

When executing the integration flow the following error appears in monitoring:

Message processing failed.

java.lang.NoSuchMethodException: No signature of method: org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.Log message payload() is applicable for argument types: (com.sap.gateway.ip.core.customdev.processor.MessageImpl) values: [com.sap.gateway.ip.core.customdev.processor.MessageImpl@5b15080c]

Does anyone have an idea what is causing this or if there is a problem in the code itself?

Thank you for your help!

Accepted Solutions (0)

Answers (2)

Answers (2)

JaySchwendemann
Active Contributor
0 Kudos

Is there really a Need for logging the payload with Groovy script? I'm quite new to SCPI, so be lenient with me, if you happen to be able to reproduce the wanted message at any time, traceing might be easier, especially since it will persist payload at any message step. Backdraw would be, that it is only on for 10 minutes, so no Long term logging there.

floriangu
Participant

Well there are two reasons why I would like to trace payload in the integration flow in the test environment:

1. Reproducing of the message is not easily possible on sender side

2. WebUI should be the central point of access for development / monitoring

Otherwise I agree with you.

Former Member
0 Kudos

Hi Florian,

Can you please post a screenshot which shows the details of your Groovy script artifact?

This piece of code works for me:

import com.sap.gateway.ip.core.customdev.util.Message;
def Message processData(Message message) {
    def body = message.getBody(java.lang.String) as String;
    def messageLog = messageLogFactory.getMessageLog(message);
    if(messageLog != null){
        messageLog.setStringProperty("Logging#1", "Printing Payload As Attachment")
        messageLog.addAttachmentAsString("ResponsePayload1:", body, "text/plain");
     }
    return message;
}

Regards,

Prasanna

floriangu
Participant

Hello,

thank you for your reply. To be on the safe side I have copied your code to my Groovy Script artefact, but still get the same error.

Here are the screenshots:

Thank you!

Former Member

Make sure you leave the field Script Function blank, as per my earlier screenshot.

mohit_verma1
Discoverer
0 Kudos
Nice reply , its work for me , i was facing same error