在 WSO2 ESB 中恢复任务 class
Restore task class in WSO2 ESB
当我在 WSO2 ESB 中使用任务时,它总是 returns 每个 Web 服务都出现相同的错误:
"Unable to handle request. The action '(mySoapAction)' was not recognized"
其中 (mySoapAction) 是用于每个操作的每个 SOAP 操作,用于我用于任务实现的每个代理服务。
我该怎么做才能修复此错误?我认为 org.apache.synapse.startup.tasks.MessageInjector 中的任务 class 错误。
显然,任务实施是正确的,因为前几天同样的任务运行得很好。建议?
这是一个带有天气网络服务的示例 (http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL)
代理服务:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="TestSOF"
transports="https http"
startOnLoad="true"
trace="disable">
<target>
<endpoint>
<wsdl service="Weather"
port="WeatherSoap12"
uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"/>
</endpoint>
<outSequence>
<log level="full"/>
<property name="OUT_ONLY" value="true"/>
<property name="transport.vfs.ReplyFileName" value="weather.xml" scope="transport"/>
<send>
<endpoint>
<address uri="vfs:file:///E:/temp"/>
</endpoint>
</send>
</outSequence>
</target>
<publishWSDL uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"/>
</proxy>
任务:
<?xml version="1.0" encoding="UTF-8"?>
<task xmlns="http://ws.apache.org/ns/synapse"
name="TestSOFTask"
class="org.apache.synapse.startup.tasks.MessageInjector"
group="synapse.simple.quartz">
<trigger count="1" interval="1"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="proxyName"
value="TestSOF"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="soapAction"
value="http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
<weat:GetCityWeatherByZIP xmlns:weat="http://ws.cdyne.com/WeatherWS/">
<weat:ZIP>11010</weat:ZIP>
</weat:GetCityWeatherByZIP>
</property>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="format"
value="soap12"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="injectTo"
value="proxy"/>
</task>
安排任务,您会在文件名中找到服务响应weather.xml
如果您想从 soap12 更改为 soap11:
- 将任务定义中 属性 "format" 的值更改为:soap11
- 使用端口“WeatherSoap”而不是 "WeatherSoap12"
更改代理服务中的端点定义
希望它能帮助您找到您的配置出了什么问题...
当我在 WSO2 ESB 中使用任务时,它总是 returns 每个 Web 服务都出现相同的错误:
"Unable to handle request. The action '(mySoapAction)' was not recognized"
其中 (mySoapAction) 是用于每个操作的每个 SOAP 操作,用于我用于任务实现的每个代理服务。 我该怎么做才能修复此错误?我认为 org.apache.synapse.startup.tasks.MessageInjector 中的任务 class 错误。 显然,任务实施是正确的,因为前几天同样的任务运行得很好。建议?
这是一个带有天气网络服务的示例 (http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL)
代理服务:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="TestSOF"
transports="https http"
startOnLoad="true"
trace="disable">
<target>
<endpoint>
<wsdl service="Weather"
port="WeatherSoap12"
uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"/>
</endpoint>
<outSequence>
<log level="full"/>
<property name="OUT_ONLY" value="true"/>
<property name="transport.vfs.ReplyFileName" value="weather.xml" scope="transport"/>
<send>
<endpoint>
<address uri="vfs:file:///E:/temp"/>
</endpoint>
</send>
</outSequence>
</target>
<publishWSDL uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"/>
</proxy>
任务:
<?xml version="1.0" encoding="UTF-8"?>
<task xmlns="http://ws.apache.org/ns/synapse"
name="TestSOFTask"
class="org.apache.synapse.startup.tasks.MessageInjector"
group="synapse.simple.quartz">
<trigger count="1" interval="1"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="proxyName"
value="TestSOF"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="soapAction"
value="http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
<weat:GetCityWeatherByZIP xmlns:weat="http://ws.cdyne.com/WeatherWS/">
<weat:ZIP>11010</weat:ZIP>
</weat:GetCityWeatherByZIP>
</property>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="format"
value="soap12"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="injectTo"
value="proxy"/>
</task>
安排任务,您会在文件名中找到服务响应weather.xml
如果您想从 soap12 更改为 soap11:
- 将任务定义中 属性 "format" 的值更改为:soap11
- 使用端口“WeatherSoap”而不是 "WeatherSoap12" 更改代理服务中的端点定义
希望它能帮助您找到您的配置出了什么问题...