我正在努力改造我的有效载荷.我有这种情况.
输入有效负载如下所示: -
{
"address": {
"city": "bab",
"company_name": "asdast",
"country_code": "sam",
"location": {
"city": null,
"state": null
}
}}
Run Code Online (Sandbox Code Playgroud)
我使用%output application/json skipNullOn = "everywhere"它返回我下面的JSON
{
"address": {
"city": "bab",
"company_name": "asdast",
"country_code": "sam",
"location": { }
}}
Run Code Online (Sandbox Code Playgroud)
但是如果位置对象中的所有字段都是空的,我不希望有空的位置对象.我期待这样的事情
{
"address": {
"city": "bab",
"company_name": "asdast",
"country_code": "sam"
}}
Run Code Online (Sandbox Code Playgroud) 这是我的Flow信息.试图从JIRA获取一个问题,并希望将该问题ID设置为另一个项目.在这里,我想使用Custom Transformer并使用JAVA编码设置所有对象.
<jira:config name="Jira" connectionUser="XXXXXXX" connectionPassword="XXXXX" connectionAddress="http://XXXXXXX/rpc/soap/jirasoapservice-v2" doc:name="Jira">
<jira:connection-pooling-profile initialisationPolicy="INITIALISE_ONE" exhaustedAction="WHEN_EXHAUSTED_GROW"/>
<reconnect count="3"/>
</jira:config>
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="jira-pocFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/input" doc:name="HTTP"/>
<jira:get-issues-from-jql-search config-ref="Jira" jqlSearch="id=MRT-75" maxNumResults="100" doc:name="Jira"/>
<set-variable variableName="payload" value="#[payload[0]]" doc:name="Variable"/>
<component class="JIRATransformer" doc:name="Java"/>
<jira:create-issue-using-object config-ref="Jira" doc:name="Jira" >
<jira:issue ref="#[message.payload]"/>
</jira:create-issue-using-object>
<logger level="INFO" doc:name="Logger"/>
</flow>
Run Code Online (Sandbox Code Playgroud)
我正在尝试访问JIRA有效负载对象,但它正在抛出Error作为类型转换异常.
@Override
public Object transformMessage(MuleMessage message, String outputEncoding)
throws org.mule.api.transformer.TransformerException {
ArrayList<com.atlassian.jira.rpc.soap.beans.RemoteIssue> list = new ArrayList(Arrays.asList(message.getPayload()));
for(RemoteIssue q : (List<RemoteIssue>) list){
System.out.println("Print AssigneeInfo:->"+q.getAssignee());
}
}
Run Code Online (Sandbox Code Playgroud)

我正在追踪错误.
ERROR 2015-04-15 19:58:59,526 [[jira-poc].HTTP_Listener_Configuration.worker.01] …Run Code Online (Sandbox Code Playgroud) 我想插入脚本来延迟Mulesoft中的处理流程.我试图在groovy中插入脚本,但我丢失了messagge有效负载,所以当我必须得到消息有效负载recived null指针.我怎么能不丢失消息有效载荷?
谢谢
我目前正在构建一个使用请求 - 响应jms连接器的Mule ESB服务器应用程序.由于它在高度并发的环境中使用,我们在MQ配置中启用了spring jms缓存.
<spring:beans>
<mule>
<!-- MQ Factory -->
<spring:bean id="testMsgMqFactoryBean1" name="testMsgMqFactory1" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<spring:property name="channel" value="${test.msg.mq.channel.1}" />
<spring:property name="queueManager" value="${test.msg.mq.queueManager.1}" />
<spring:property name="hostName" value="${test.msg.mq.hostName.1}" />
<spring:property name="port" value="${test.msg.mq.port.1}" />
<spring:property name="transportType" value="${mq.jms.transportType}" />
</spring:bean>
<spring:bean id="testMsgMqFactoryBeanCache1" class="org.springframework.jms.connection.CachingConnectionFactory">
<spring:property name="targetConnectionFactory" ref="testMsgMqFactoryBean1" />
<spring:property name="sessionCacheSize" value="${test.threading.profile.maxThreadsActive}" />
<spring:property name="cacheConsumers" value="false" />
<!-- <spring:property name="cacheProducers" value="false" /> -->
</spring:bean>
<!-- MQ Connector 1 -->
<jms:custom-connector name="testMsgMqConnector.1" class="org.mule.transport.jms.websphere.WebsphereJmsConnector" doc:name="Custom JMS">
<spring:property name="specification" value="1.1" />
<spring:property name="connectionFactory" ref="testMsgMqFactoryBeanCache1" />
<spring:property name="persistentDelivery" value="false" /> …Run Code Online (Sandbox Code Playgroud) 我的M子里composite-source有两个http:listener。
在收到来自这些侦听器的请求之后,我想基于每个侦听器设置一个变量;
但是在mule 3.6.0中部署时会发生此错误:
org.mule.module.launcher.DeploymentInitException: SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'set-session-variable'. One of '{"http://www.mulesoft.org/schema/mule/core":annotations, "http://www.mulesoft.org/schema/mule/http":response-builder, "http://www.mulesoft.org/schema/mule/http":error-response-builder}' is expected.
Run Code Online (Sandbox Code Playgroud)
我该怎么办??
这是我的代码:
<composite-source doc:name="Composite Source">
<http:listener config-ref="HTTP_Listener_Configuration_Source1"
path="/" doc:name="HTTP">
<set-session-variable doc:name="Session Variable" value="#[x]" variableName="x" />
</http:listener>
<http:listener config-ref="HTTP_Listener_Configuration_Source2"
path="/" doc:name="HTTP">
<set-session-variable doc:name="Session Variable" value="#[y]" variableName="x" />
</http:listener>
</composite-source>
Run Code Online (Sandbox Code Playgroud)
PS我已经做到了 http:inbound-endpoint
session-variables httplistener mule mule-studio mule-component
我们使用 REST API 以 XML 格式将 PO 数据发布到 Oracle 实例。在失败的情况下,它只是来自 error.description 示例的打印消息“资源 ' https://hostname:post/fscmService/PurchaseOrderServiceV2 ' 上的 HTTP POST 失败:内部服务器错误 (500)”。现在的请求是从 Oracle Cloud ERP 打印确切的错误消息。当我们从 Postman 运行相同的测试用例时,我们可以在响应正文中看到确切的错误消息,我试图在 mule 记录器中打印相同的响应,并且希望发送与响应有效负载相同的内容,但无法获取它。
我尝试调试 Mule 流并在异常处理程序“On Error Propagate”中停止,并查看所有变量以查看实际的错误响应,但没有找到。请指教!
请查找以下屏幕截图以供参考。
我正在尝试在Mule组件中构建一个简单的脚本,但我似乎无法找到有关如何让我入门的任何文档.
在JavaScript的组件引用分享关于如何得到的东西简单的运行没有任何想法.
我正在向mule发送一些参数,它正在通过我发送的8081中的http入站进行监听.
http://localhost:8081/hey?age=manoj
Run Code Online (Sandbox Code Playgroud)
但我不知道我怎么能从消息中得到这个?我知道我可以从消息和有效负载访问它,但是当我尝试这样做时
#[message payload: ['age']]
Run Code Online (Sandbox Code Playgroud)
我收到错误,有效载荷是一个字符串类型,我非常混淆骡子.我想要年龄价值.
这是我的xml,首先我需要检查'RecordsEntries'不应该是'null',然后RecordEntry不应该null跟随映射代码
<?xml version="1.0" encoding="UTF-8"?>
<Records>
<storenumber />
<calculated>false</calculated>
<subTotal>12</subTotal>
<RecordsEntries>
<RecordEntry>
<deliverycharge>30.0</deliverycharge>
<entryNumber>8</entryNumber>
<Value>true</Value>
</RecordEntry>
<RecordEntry>
<deliverycharge>20.0</deliverycharge>
<entryNumber>7</entryNumber>
<Value>false</Value>
</RecordEntry>
</RecordsEntries>
<RecordsEntries>
<RecordEntry>
<deliverycharge>30.0</deliverycharge>
<entryNumber>8</entryNumber>
<Value>false</Value>
</RecordEntry>
</RecordsEntries>
</Records>
Run Code Online (Sandbox Code Playgroud)
尝试多个场景也使用when条件检查,但某处缺少括号或正确的格式
orders: {
order: {
StoreID: payload.Records.storenumber,
Total: payload.Records.calculated,
(( payload.Records.RecordsEntries.*RecordEntry ) map {
IndividualEntry: {
Number:$.entryNumber,
DeliverCharge:$.deliverycharge
}
} when ( payload.Records.RecordsEntries != null and payload.Records.RecordsEntries.*RecordEntry !=null))}
}
Run Code Online (Sandbox Code Playgroud)
像失踪一样得到错误).通过在第一个循环内直接检查null条件来尝试其他方式得到了错误,例如"无法将数组强制转换为布尔值".请建议.谢谢.
在 mule esb 中,当我拖动记录器组件时,我可以看到有 5 个日志级别:
调试、错误、信息、跟踪和警告。这5个有什么区别,什么时候用什么?
提前致谢
mule ×10
mule-component ×10
mule-studio ×4
mule-el ×3
java ×2
dataweave ×1
groovy ×1
httplistener ×1
ibm-mq ×1
jira ×1
log4j2 ×1
logging ×1
mule-esb ×1
mulesoft ×1
spring ×1
spring-jms ×1