简体   繁体   中英

camel cxf request/response

i have problem with build my own webservice based on cxf/camel.

My webservice should do something like this:

I am on DomainA from which i send POST data to my webservice (CXF)

my CXF code is:

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

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


    }

}

My CXF code receive my id variable.

Now i want to send this variable to other url http://localhost:8080/myWebSite and wait for response from the url and after get the response send it to DomainA

my beans.xml is:

<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>

The easiest way is going to be a Spring RestTemplate , as this hides a huge amount of the complexity that you'd otherwise have to deal with.

The Spring documentation describes the basics, but be aware that you'll want to build the request as a MultiValueMap<String, String> so that it will be sent to the service as application/x-www-form-urlencoded .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM