我已经从我的客户给予了REST URI是如下:WSO2宁静的API
https://vm3.digitary.net/verifier/HEDDRequestDocumentAccess
以下请求XML已经被张贴到上述URI获得响应XML。
<documentAccessRequest xmlns="http://www.digitary.net/schema/dare/hedd/documentAccessRequest/2013" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.digitary.net/schema/dare/hedd/documentAccessRequest/2013 http://www.digitary.net/schema/dare/hedd/documentAccessRequest/2013">
<head>
<institutionCode>BBCU</institutionCode>
<username>HEDDUser</username>
<password>HEDDPass</password>
</head>
<body>
<heddEnquiryId>12347895844</heddEnquiryId>
<enquiree>
<email>[email protected]</email>
<firstName>Jane</firstName>
<lastName>Doe</lastName>
</enquiree>
<enquirer>
<organisation>BBC</organisation>
<contactName>Jeremy Clarkson</contactName>
</enquirer>
<documentRequested>HEAR</documentRequested>
</body>
</documentAccessRequest>
现在我必须使自己的包装REST API在WSO2 ESB 4.6.0这将只需调用具有相同的请求和响应XML上述REST URI的要求。这个想法是通过REST API传递给上面提到的API。
我已实现了以下REST API:
<api xmlns="http://ws.apache.org/ns/synapse" name="TestDareRest" context="/documentRequest" hostname="46.137.187.137" port="8280">
<resource methods="POST" url-mapping="/request/*">
<inSequence>
<log/>
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
<send>
<endpoint>
<address uri="https://vm3.digitary.net/verifier/HEDDRequestDocumentAccess" format="pox"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log/>
<property name="ContentType" value="application/xhtml+xml" scope="axis2"/>
<send/>
</outSequence>
</resource>
</api>
但上述API完全不工作,它是gving错误的负载在ESB控制台。我使用SOAPUI来测试这个REST服务并从那里发布相同的请求xml。该服务部署我们的公网IP的服务器上,并且可以通过登录中可以看出以下
https://46.137.187.137:9443/carbon/admin/index.jsp with username/pwd as admin/admin
我试图为文本/ xml和application/XML
在SOAPUI同时设置媒体类型在文本的情况下,/XML它如下是给错误:
org.apache.axiom.soap.SOAPProcessingException:第一个元素必须包含本地名,信封,却发现documentAccessResponse 在org.apache.axiom.soap.impl.builder。 StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:305)
在应用/ XML的情况下,它是给以下错误
INFO - LogMediator到:http://www.w3.org/2005/08/addressing/anonymous,WSAction:,的SOAPAction:,邮件ID:瓮:UUID:53a782ab-2081-4cb1-9e94-910b75816361,方向:响应 [2013年4月10日16:05:12911]错误 - PassThroughHttpSender无法提交响应 java.lang.UnsupportedOperationException
请帮我解决这个问题,因为它已经得到了我很多的关键。
由于提前 Shakshi
我做了你所建议的,现在传输是非阻塞的,因为你可以在ESB启动日志中看到meesage。 INFO - HttpCoreNIOListener HTTP监听器在端口8280上启动。但是我的REST API不工作,现在它给出错误ERROR - HttpCoreNIOSender org.apache.http.ProtocolException:传输编码头已经存在(Synapse可能试图发送一个确切的反应不止一次) – ShakshiS 2013-04-11 11:55:53