Java 转换:Return NullPayload
Java Transform: Return NullPayload
我不知道发生了什么。 Java 转换 return NullPayload。
XML 代码:
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="teste-tranformationFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/trans" doc:name="HTTP"/>
<custom-transformer class="TransformTest" doc:name="Java"/>
<logger message="SUPER TESTE #[payload]" level="INFO" doc:name="Logger"/>
</flow>
JAVA 代码:
public class TransformTest extends AbstractMessageTransformer {
@Override
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
String s = "";
try {
s = ((ParameterMap)message.getInboundProperty("http.query.params")).get("id").toString();
message.setOutboundProperty("id", s + "***");
} catch (Exception e) {
e.printStackTrace();
}
return message;
}
}
记录器打印:
SUPER TESTE null
Java 转换实施是否正确?
您正在打印负载 #[payload]
,而不是转换器中设置的 "id" 出站 属性。 #[message.outboundProperties.propertyName]
--> #[message.outboundProperties.id]
如果您想设置出站 属性,则不需要 Custom Java Transformer
,您可以使用 Property Transformer
来完成,请查看文档:
https://docs.mulesoft.com/mule-user-guide/v/3.7/property-transformer-reference
对于Mule Message
结构的理解:
https://docs.mulesoft.com/mule-fundamentals/v/3.7/mule-message-structure
进行转换(Dataweave):
https://docs.mulesoft.com/mule-user-guide/v/3.7/using-dataweave-in-studio
我不知道发生了什么。 Java 转换 return NullPayload。
XML 代码:
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="teste-tranformationFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/trans" doc:name="HTTP"/>
<custom-transformer class="TransformTest" doc:name="Java"/>
<logger message="SUPER TESTE #[payload]" level="INFO" doc:name="Logger"/>
</flow>
JAVA 代码:
public class TransformTest extends AbstractMessageTransformer {
@Override
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
String s = "";
try {
s = ((ParameterMap)message.getInboundProperty("http.query.params")).get("id").toString();
message.setOutboundProperty("id", s + "***");
} catch (Exception e) {
e.printStackTrace();
}
return message;
}
}
记录器打印:
SUPER TESTE null
Java 转换实施是否正确?
您正在打印负载 #[payload]
,而不是转换器中设置的 "id" 出站 属性。 #[message.outboundProperties.propertyName]
--> #[message.outboundProperties.id]
如果您想设置出站 属性,则不需要 Custom Java Transformer
,您可以使用 Property Transformer
来完成,请查看文档:
https://docs.mulesoft.com/mule-user-guide/v/3.7/property-transformer-reference
对于Mule Message
结构的理解:
https://docs.mulesoft.com/mule-fundamentals/v/3.7/mule-message-structure
进行转换(Dataweave):
https://docs.mulesoft.com/mule-user-guide/v/3.7/using-dataweave-in-studio