Java 有效负载工厂内的Get argument属性中存在问题
我试图通过ESB调用JSON客户端到DSS服务器的请求,我试图调用获取数据服务,下面给出了客户端代码、ESB插入序列配置。我得到一个服务器错误,如下所示: LogMediator To:,WSAction:,SOAPAction:,MessageID:urn:uuid:da913ea8-4122-4f58-9732-4106a55b465a,方向:响应,消息=执行默认的“错误”序列,错误代码=0,错误消息=发回消息时出现意外错误,信封: 客户端代码为:Java 有效负载工厂内的Get argument属性中存在问题,java,rest,wso2,wso2esb,Java,Rest,Wso2,Wso2esb,我试图通过ESB调用JSON客户端到DSS服务器的请求,我试图调用获取数据服务,下面给出了客户端代码、ESB插入序列配置。我得到一个服务器错误,如下所示: LogMediator To:,WSAction:,SOAPAction:,MessageID:urn:uuid:da913ea8-4122-4f58-9732-4106a55b465a,方向:响应,消息=执行默认的“错误”序列,错误代码=0,错误消息=发回消息时出现意外错误,信封: 客户端代码为: URL url = new URL("h
URL url = new URL("http://xxx:xx:xx:xxx/entitytype");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
String studentDetails = "{\"hierarchyEntityRequest\":{\"entityName\":\"Chandragiri\",\"parentEntity\":900000001}}";
System.setProperty("studentDetails",studentDetails);
OutputStream os = conn.getOutputStream();
os.write(studentDetails.getBytes());
os.flush();
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ESB配置服务是:
<payloadFactory>
<format>
<p:getEntityById xmlns:p="http://com.pcs.entity">
<xs:data xmlns:xs="http://com.pcs.entity">get-property('uri.var.myhierachy')</xs:data>
</p:getEntityById>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('uri.var.myhierachy')"/>
</args>
</payloadFactory>
<enrich>
<source clone="true" type="body"/>
<target action="replace" type="property" property="myhierachy"/>
</enrich>
<enrich>
<source clone="true" type="body"/>
<target action="replace" type="property" property="myhierachy"/>
</enrich>
<send>
<endpoint key="HierarchyService"/>
</send>
<property name="messageType" value="application/json" scope="axis2" type="STRING"/>
<log level="full" category="TRACE"/>
获取属性('uri.var.myhierachy')
如果要将消息发送到DSS服务器而不返回响应,可以将“OUT\u ONLY”属性指定为“true”,如下所述
<property action="set" name="OUT_ONLY" value="true"/>
如果希望将响应返回给客户机,可以将mediator作为配置的最后一个元素或包含在out序列中
<send/>