camel cxf请求/响应

时间:2012-02-07 10:26:56

标签: java cxf apache-camel

我在构建基于cxf / camel的自己的web服务时遇到问题。

我的网络服务应该做这样的事情:

我在 DomainA 上,我将POST数据发送到我的网络服务(CXF)

我的CXF代码是:

@Path("/")
@ProduceMime({ "application/json" })
public class SSO {

    @POST
    @Path("/user")
    @ProduceMime({ "application/json" })
    public String user(@FormParam("id") String token) {


    }

}

我的CXF代码会收到 id 变量。

现在我想将此变量发送到其他网址 http:// localhost:8080 / myWebSite 并等待来自网址的响应,并在获得响应后将其发送到 DomainA

my beans.xml是:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:osgi="http://www.springframework.org/schema/osgi"
    xmlns:jaxrs="http://cxf.apache.org/jaxrs"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
    http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">

    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/osgi/cxf-extension-osgi.xml" />

    <bean id="cxfSSO" class="com.esb.cxf.SSO" />
    <jaxrs:server id="sso" address="/sso">
        <jaxrs:serviceBeans>
            <ref bean="cxfSSO" />
        </jaxrs:serviceBeans>
    </jaxrs:server>

</beans>

1 个答案:

答案 0 :(得分:0)

最简单的方法是成为一个Spring RestTemplate,因为这隐藏了你必须处理的大量复杂性。

Spring documentation介绍了基本知识,但请注意,您需要将请求构建为MultiValueMap<String, String>,以便将其作为application/x-www-form-urlencoded发送到服务。