我对MuleESB很新。我正在使用 Mule Standalone 3.8.1 ,并使用 xpath3()功能来过滤HTTP请求。我使用的配置如下。
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" />
<http:request-config name="HTTP_Request_Configuration" host="example.com" port="8081" basePath="basePath" responseTimeout="120000" />
<custom-transformer name="XML_Transformer" class="org.mule.module.xml.transformer.XmlToOutputHandler"/>
<message-properties-transformer name="Response_Error_Transformer">
<add-message-property key="http.status" value="500"/>
<add-message-property key="Content-Type" value="text/xml" />
</message-properties-transformer>
<message-properties-transformer name="Response_Transformer">
<add-message-property key="Content-Type" value="text/xml" />
</message-properties-transformer>
<set-payload name="Create_Error_Response" value="
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
<fault>
<code>500</code>
<message>#[flowVars['errorMessage']]</message>
</fault>
</PurchaseOrder>" />
<flow name="Choice_Flow">
<http:listener config-ref="HTTP_Listener_Configuration" path="productFilter" />
<choice>
<when expression="#[xpath3('//Item[1]/ProductName') == 'Laptop']">
<transformer ref="XML_Transformer"/>
<http:request config-ref="HTTP_Request_Configuration" path="EchoService" method="POST" />
<flow-ref name="Response_Transformer" />
</when>
<otherwise>
<flow-ref name="Response_Error_Transformer" />
<set-variable variableName="errorMessage" value="First item must be a Laptop" />
<flow-ref name="Create_Error_Response" />
</otherwise>
</choice>
</flow>
当我在10个线程发送HTTP请求时,它工作正常。但是,当我尝试在500个线程上发送请求时,一些请求失败了。该请求是一个包含2500个 Item 元素的XML。我没有在日志或任何地方看到任何描述性错误,但请求失败了。发生这种情况后,即使对于小线程数,某些请求也会失败,我在日志目录中的文件中找不到任何错误。我在 mule.log 文件中看到的错误如下所示。这是在第一次出现此错误时写入的。然后,简单地说,没有。
Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread "[default].http.listener(6)"
有人可以解释一下这里发生了什么吗?怎么做没有任何错误?我的配置有问题吗?