我在调用mule应用程序时遇到错误(可选数据异常),该应用程序部署在3.4.0 mule服务器中,部署在3.4.1 mule服务器中的mule应用程序中。
以下是解释此问题的示例说明:
从数据库中获取数据的一个Mule项目(名为:GetEmployeeData)部署在版本为3.4.0的mule服务器中。公开的端点是此项目的HTTP。
另一个mule项目(名为EmployeeManagement)在内部命中(调用)GetEmployeeData项目的HTTP端点。
项目EmployeeManagement部署在版本为3.4.1的mule服务器中。
当EmployeeManagement项目命中GetEmployeeData项目时,它返回的HTTP响应是OptionalDataException。
为了解决方法,我们将mule服务器3.4.1中的jar文件:mule-core-3.4.1.jar更改为mule-core-3.4.0.jar,然后GetEmployeeData的HTTP响应正常工作。
如果有人遇到类似的问题,请回复,这是一个众所周知的问题。在我的情况下,我正在打第三方服务,所以我不能告诉他们将应用程序升级到3.4.1。另外,我是否需要更改流程周围的任何内容以获得正确的响应。
答案 0 :(得分:0)
这听起来像是3.4.0和3.4.1之间不兼容的会话序列化问题。
尝试为两个Mules的HTTP连接器设置NullSessionHandler
:
<http:connector name="NoSessionConnector">
<service-overrides sessionHandler="org.mule.session.NullSessionHandler" />
</http:connector>