У меня есть поток мула, который вызывает метод и устанавливает возвращаемое значение в полезной нагрузке.Ошибка мула --2. Не удалось вызвать метод. Полезная нагрузка сообщения имеет тип string
Вот часть моего потока, что делает его
<flow name="PositiveFlow1" doc:name="PositiveFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9293" doc:name="HTTP"/>
<invoke object-ref="TestUtils1"
method="getSignedClaimWrapper"
doc:name="Invoke"/>
<set-session-variable variableName="clientcontext" value="#[payload]" doc:name="Session Variable"/>
<flow-ref name="_subflow1" doc:name="Flow Reference"/>
</flow>
getSignedClaimWrapper
возвращает Base64
закодированную строку.
Вот моя трассировка стека.
Message : Failed to invoke [email protected] Message payload is of type: String
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString([B)Ljava/lang/String; (java.lang.NoSuchMethodError)
com.nimbusds.jose.util.Base64URL:64 (null)
2. Failed to invoke [email protected] Message payload is of type: String (org.mule.api.MessagingException)
org.mule.processor.InvokerMessageProcessor:178 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString([B)Ljava/lang/String;
at com.nimbusds.jose.util.Base64URL.encode(Base64URL.java:64)
at com.nimbusds.jose.util.Base64URL.encode(Base64URL.java:91)
at com.nimbusds.jose.Header.toBase64URL(Header.java:238)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
Я предполагаю, что это связано с тем, что у Mule есть ограничение на обработку Base64 Strings. Поскольку тестовые примеры для класса TestUtils
кажутся совершенно безупречными.
Любое понимание того, что может произойти или возможные решения, будет оценено по достоинству!
весна фасоль из мула потока:
<spring:bean id="TestUtils1" class="com.package.TestUtils"/>
</spring:beans>
Соответствующая часть Java класса:
public String getSignedClaimWrapper() throws KeyLoadException,
KeyNotFoundException, SignException, SignerNotInitializedException
{
String signedClaim = rsaTokenSigner.signClaim(claimsSet);// returns a base64 encoded string.
System.out.println("The signed claim is " + signedClaim);
return signedClaim;
}
}
Не могли бы вы отобразить класс java и метод, который вы пытаетесь вызвать? Также весенний боб в Mule config ?? –