我试图在WSO2 ESB中调用安全代理服务。我跟着这个伟大的tutorial。
但是当我从SOAP UI发送安全请求时。服务进入超时状态,我在ESB日志中出错。我仔细检查了教程的每一步。但我不知道它为什么不起作用。
注意:
我正在使用WSO2 ESB 4.8.1和SOAP UI 5.0.0。
我的代理服务代码:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="EchoProxy"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full" separator="First Log"/>
<log level="full" separator="Second Log"/>
<send>
<endpoint>
<address uri="http://localhost:8280/services/echo"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level="full"
separator=Out Sequence Log"/>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<property name="ClientApiNonBlocking" scope="axis2" action="remove"/>
<send/>
</outSequence>
</target>
<parameter name="disableREST">true</parameter>
<parameter name="ScenarioID">scenario5</parameter>
<enableSec/>
<policy key="conf:/repository/axis2/service-groups/EchoProxy/services/EchoProxy/policies/SigEncr"/>
<description/>
</proxy>
日志错误:
[2015-02-17 16:32:54,793] ERROR - ServerWorker Error processing POST request for : /services/EchoProxy.EchoProxyHttpsSoap11Endpoint
org.apache.axis2.AxisFault: Message is not signed
at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:180)
at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:99)
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.rampart.RampartException: Message is not signed
at org.apache.rampart.PolicyBasedResultsValidator.validateEncrSig(PolicyBasedResultsValidator.java:264)
at org.apache.rampart.PolicyBasedResultsValidator.validate(PolicyBasedResultsValidator.java:151)
at org.apache.rampart.RampartEngine.process(RampartEngine.java:470)
at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
... 10 more
[2015-02-17 16:33:54,690] WARN - SourceHandler Connection time out after request is read: http-incoming-1
您可以在上述教程中找到的其他信息。