Spring Mule调用消息处理器
我遇到了可用于从流内部调用java方法的“invoke”元素()。对我来说,这似乎是一个完美的解决方案,因为我不想使用可调用和入口点解析器,我想向该方法传递额外的参数Spring Mule调用消息处理器,spring,mule,Spring,Mule,我遇到了可用于从流内部调用java方法的“invoke”元素()。对我来说,这似乎是一个完美的解决方案,因为我不想使用可调用和入口点解析器,我想向该方法传递额外的参数 <invoke object-ref="yourBean" method="yourMethod" methodArguments="#[message.inboundProperties['inboundPropertyName']]" /> <set-property pro
<invoke object-ref="yourBean"
method="yourMethod"
methodArguments="#[message.inboundProperties['inboundPropertyName']]" />
<set-property propertyName="outboundPropertyName"
value="#[payload]" />
我的标记中还定义了其他bean,但其他bean似乎可以工作。有人有类似的问题吗
编辑:
当我删除除“yourBean”之外的其他bean定义时,一切都开始工作了,但当我添加更多bean定义时,我在尝试使用“yourBean”时遇到了以下错误:
对我来说,“yourBean”似乎没有被实例化。但是为什么呢
我的bean定义:
<bean id="yourBean" class="com.example.BpmService"/>
<bean id="StatusUpdateContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
<constructor-arg>
<array>
<value type="java.lang.Class">
com.example.OrderStatusUpdate
</value>
</array>
</constructor-arg>
</bean>
com.example.OrderStatusUpdate
编辑:好的,为Mule invoke工作的部分id/名称。我在使用多个bean定义的invoke时没有遇到任何问题。这听起来更像是您的bean(您没有共享)和/或Spring的问题,而不是Mule invoke的问题。我搜索id和name之间的差异,这里似乎没有问题。我用更多的信息更新了我的问题。
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'yourBean' is defined
Exception stack is:
1. null (java.lang.NullPointerException)
org.mule.processor.InvokerMessageProcessor:280 (null)
2. null (java.lang.NullPointerException). Message payload is of type: String (org.mule.api.MessagingException)
org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor:35 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.ht
ml)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.NullPointerException
at org.mule.processor.InvokerMessageProcessor.transformArgument(InvokerMessageProcessor.java:280)
at org.mule.processor.InvokerMessageProcessor.evaluateArguments(InvokerMessageProcessor.java:200)
at org.mule.processor.InvokerMessageProcessor.process(InvokerMessageProcessor.java:164)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
<bean id="yourBean" class="com.example.BpmService"/>
<bean id="StatusUpdateContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
<constructor-arg>
<array>
<value type="java.lang.Class">
com.example.OrderStatusUpdate
</value>
</array>
</constructor-arg>
</bean>