【发布时间】:2020-07-02 13:15:51
【问题描述】:
我要做的是创建一个概念验证 Camel 路由,它公开一个 cxfrs 服务端点。使用 cxf 客户端将对此端点的请求路由到不同服务器上的另一个服务。在我得到 xml 响应之后,我需要用它做一些事情,比如说将响应正文保存到数据库中。当然,原始请求者也需要收到响应。
如果我不对响应进行任何后处理,那么我会按预期在浏览器中获取响应 xml。但是每当我尝试在我的路由中添加另一个步骤来处理响应时,浏览器都会得到一个空的响应。正如您在注释掉的行中看到的那样,我使用哪个骆驼组件调用 bean 并不重要。我尝试了 bean、process 和 to。即使我将 bean 中的所有代码都注释掉,所以它什么也不做,结果是一样的。
这是我的路线:
<cxf:rsServer address="{{base.url}}/employeeservicecxf" id="restServiceCxf">
<cxf:serviceBeans>
<bean class="com.kf.camel.sample.EmployeeServiceResource"/>
</cxf:serviceBeans>
</cxf:rsServer>
<cxf:rsClient
address="http://{{remote.server}}/adminrest/jaxrs/projects/10475/products"
id="rsClient" loggingFeatureEnabled="true" />
<bean class="com.kf.camel.sample.CamelProcessor" id="processor"/>
<bean class="com.kf.camel.sample.CamelResponseProcessor" id="responseProcessor"/>
<camelContext id="_camelContext1" trace="true" xmlns="http://camel.apache.org/schema/spring">
<propertyPlaceholder id="properties" location="app.properties"/>
<route id="_route1">
<from id="_from1" uri="cxfrs://bean://restServiceCxf"/>
<process id="_process1" ref="processor"/>
<setHeader headerName="CamelHttpMethod" id="_setHeader1">
<constant>GET</constant>
</setHeader>
<to id="_to1" uri="cxfrs://bean://rsClient"/>
<!-- to id="_to3" uri="bean://com.kf.camel.sample.CamelResponseProcessor?method=process"/-->
<bean id="_bean1" ref="responseProcessor" method="process"/>
<!-- process id="_process2" ref="responseProcessor"/-->
</route>
</camelContext>
</beans>
Response Headers Response Body with content length mismatch error
【问题讨论】:
标签: java apache-camel spring-camel cxfrs