我正在使用骆驼集成两个系统:
App-A ---- Rest / JSON ----> Camel-App ---- SOAP / XML ---> App-B。
除JSON响应外,其他所有文件均正常工作,面临以下问题: 1.它会产生对不需要的字符的响应,这些字符不是身体的一部分,而是出现在身体的前后,请参见下文
HTTP / 1.1 200确定 内容类型:text / xml; charset = utf-8 内容处置:内联;文件名= f.txt 过期:0 传输编码:分块 服务器:码头(9.4.12.v20180830)
3E0 {“ schemas”:[“ urn:ietf:params:scim:schemas:core:2.0:User”,.........} 0
您可以看到,在普通请求/响应服务中,它在主体和content-disposition标头中添加了3E0和0个字符。
代码如下:
<bean id="jetty" class="org.apache.camel.component.jetty9.JettyHttpComponent9">
<property name="sslContextParameters" ref="iamSSLContext"/>
</bean>
<camel:restConfiguration component="jetty" contextPath="/" port="8888" scheme="http"/>
<camel:rest path="/">
<camel:post uri="/" consumes="application/json" produces="application/json">
<camel:to uri="direct:createUser"/>
</camel:post>
</camel:rest>
<camel:route id="createUserRouter">
<camel:from uri="direct:createUser"/>
<camel:convertBodyTo type="java.lang.String"/>
<camel:to uri="velocity:template/rest_request_template.vm" />
<camel:to uri="cxf:bean:soapEndpoint" />
<camel:setHeader headerName="responsePayload">
<camel:xpath resultType="String">//m:executeResponse/m:responsePayload/text()</camel:xpath>
</camel:setHeader>
</camel:route>
<camel:to uri="velocity:template/rest_response_template.vm" />
$ {headers.responsePayload}
请帮助或指导我们了解我在做什么错误。
谢谢, Abhi S