运行mule时抛出的空异常,当一个devkit 3.0.0方法带有@InboundAttachments参数时

时间:2013-07-30 07:13:01

标签: mule devkit

我正在尝试使用@attachment http属性

我在流程中有一个名为validate的devkit方法,就像这样调用

<http:connector name="httpConnector" doc:name="HTTP\HTTPS">
    <service-overrides
        messageFactory="org.mule.transport.http.HttpMultipartMuleMessageFactory" />
</http:connector>
<flow name="AttachmentTestFlow1" doc:name="AttachmentTestFlow1">        
    <http:inbound-endpoint connector-ref="httpConnector" doc:name="HTTP" exchange-pattern="request-response" host="localhost" port="8100"/>
    <Foo:validate config-ref="TestMessageSizeHappy"  />
</flow>

在Devkit中:

@Processor
public Object validate(@Payload InputStream in
    ,@InboundAttachments("*") Map<String, DataHandler> inboundAttachments
    ,@OutboundAttachments Map<String, DataHandler> outboundAttachments
    ) {

然而,在运行我的mule应用程序时会抛出这个:

  

错误2013-07-30 09:06:39,225 [主要]   org.mule.module.launcher.application.DefaultMuleApplication:null   org.xml.sax.SAXParseException:cvc-complex-type.2.4.b:的内容   element'xmlthreatprotection:validate'未完成。之一   “{ “http://www.mulesoft.org/schema/mule/core”:注释,   “http://www.mulesoft.org/schema/mule/xmlthreatprotection”:入站附件}”   是期待。在   org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(未知   源)

在我看来,mule希望将附件作为一个属性放入其中! 当我删除@attachment时,我在运行时没有错误。

1 个答案:

答案 0 :(得分:1)

你确定DevKit支持吗?我在执行@InboundAttachments@OutboundAttachments注释的源代码中找不到单个集成测试,而@InboundHeaders@OutboundHeaders都是测试覆盖。

或者,您可以收到MuleEvent并通过它访问附件:

@Processor
@Inject
public Object validate(@Payload InputStream in, MuleEvent muleEvent) {