Spring Mule调用消息处理器

Spring Mule调用消息处理器,spring,mule,Spring,Mule,我遇到了可用于从流内部调用java方法的“invoke”元素()。对我来说,这似乎是一个完美的解决方案,因为我不想使用可调用和入口点解析器,我想向该方法传递额外的参数 <invoke object-ref="yourBean" method="yourMethod" methodArguments="#[message.inboundProperties['inboundPropertyName']]" /> <set-property pro

我遇到了可用于从流内部调用java方法的“invoke”元素()。对我来说,这似乎是一个完美的解决方案,因为我不想使用可调用和入口点解析器,我想向该方法传递额外的参数

<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>