当前位置: 首页 > 知识库问答 >
问题:

在基于CXF的Camel路由中,在后处理后无法从远程服务返回响应体

谷奕
2023-03-14
        <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>

共有1个答案

汝臻
2023-03-14

是否尝试启用流缓存?

听起来,您对响应执行的任何第一个操作都在消耗流,而再次读取流的任何进一步尝试都将得到一个空结果。

当您希望在Camel中多次读取流时,您必须启用流缓存。

 类似资料:
  • 我在Spring XML中用动态路由器bean定义了路由,如下所示 下面补充日志...请注意“所有步骤都完成了...”声明出现了两次...

  • 我有一个使用Spring Boot的APIendpoint。这个endpoint所做的是调用另外两个APIendpoint并处理它们的响应。 该过程的前半部分调用一个 API 终结点,获取响应并将此响应与 202 Accepted 一起返回到表面。 在202被返回之后,后台正在经历该过程的第二部分。它从第一个API调用中获取响应并进一步处理它。 我尝试过使用或,但它们在返回202之后都停止了,并且

  • 问题内容: 我最近公布的我面对这个问题的详细说明,这里的SO。由于我无法发送实际的请求,因此我使用了超时来模拟异步行为。在@Gloopy的帮助下,从模型到视图的数据绑定工作正常 现在,当我使用而不是(在本地测试)时,我可以看到异步请求成功,并且在我的服务中充满了json响应。但是,我的看法没有更新。 在这里更新了Plunkr 问题答案: 这是一个可以满足您需求的Plunk:http ://plnk

  • 问题内容: 我最近公布的我面对这个问题的详细说明,这里的SO。由于我无法发送实际的请求,因此我使用了超时来模拟异步行为。在@Gloopy的帮助下,从模型到视图的数据绑定工作正常 现在,当我使用而不是(在本地测试)时,我可以看到异步请求成功,并且在我的服务中充满了json响应。但是,我的看法没有更新。 问题答案: 这个想法是您直接使用promise及其promise,然后使用它们的“ then”函数

  • 我在Spring Boot应用程序中有两条路由(路由1和路由2)。我一直在研究如何在处理这两条路由后优雅地关闭应用程序。我参考了文档(https://camel.apache.org/manual/latest/gracefule-shutdown.html),但无法成功实现所需的功能。也许我的理解是错误的。 下面是我的两条路线 路线1 路线2 它会优雅地关闭两条路由,但随后会警告强制关闭Exec

  • 我在做一些关于Camel-CXf集成的研究,对下面的场景感到困惑。 所以我实现了一个Restendpoint 实现如下 } 路线 将其路由到实现中。但是由于实现返回一个响应对象,我不知道如何绕过这个对象构建路由。 一旦调用进入实现,我如何执行其他路由并发送回响应?在这种情况下,实现返回一个自定义对象。 其他路由如何附加到 CXF 路由? 我的 CXF 实现是否应该始终返回无效类型?如我所见,要访问