Java REST到SOAP头

Java REST到SOAP头,java,web-services,rest,soap,Java,Web Services,Rest,Soap,我使用JAX-WS开发了一个SOAP web服务,如下所示: @WebService(...) public class SOAP_Service implements JAXWS_Interface { public SOAP_Service() { JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean(); List<Handler> handlers = new Arra

我使用JAX-WS开发了一个SOAP web服务,如下所示:

@WebService(...)
public class SOAP_Service implements JAXWS_Interface {
    public SOAP_Service() {
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();

        List<Handler> handlers = new ArrayList<Handler>();
        handlers.add(new SOAPHandler<SOAPMessageContext>() {
            // Read SOAP headers
        });

        factory.addHandlers(handlers);
    }

    @Override
    public FooResponse foo(FooRequest req) {
        // Do something.
    }
}
@Path("")
@Produces(MediaType.APPLICATION_JSON)
public class REST_Service {
    JAXWS_Service service = new JAXWS_Service();
    JAXWS_Interface interface = service.getJAXWS_Interface();

    public REST_Service() {
        final List<Handler> handlerList = new ArrayList<Handler>();
        handlerList.add(new SOAPHandler<SOAPMessageContext> {
            // Inject SOAP headers
        });
    }

    @GET
    @PATH("/foo")
    public FooResponse foo(
        @HeaderParam("bar") String bar,
        @QueryParam("fooParam1") String fooParam1)
    {
        FooRequest request = new FooRequest();
        request.setFooParam1(fooParam1);

        interface.foo(request);
    }
}
我遇到的问题是将REST头参数放入SOAP头中。我想了两种解决办法,但我都不喜欢

在foo中,创建JAXWS_服务的新实例JAXWS_接口,并将最后一个bar传递给内部SOAPHandler。 我不喜欢这样,因为它需要在每个请求中重新创建我们的SOAP服务+处理程序,我认为这是非常低效的。 在foo中,在SOAPHandler的实现中设置一个变量,当调用handleMessage时,该变量将被注入到SOAP头中。 事实上,我认为由于缺乏同步性,这是行不通的。
我一直在思考、阅读和研究,我可以为我的问题提供一些建议或更好的解决方案。

JAX-WS和JAX-RS是不同的规范。他们不混在一起。你想做什么?您的问题是关于从SOAP调用中提取HTTP头吗?最后,我不想提取传入的SOAP头,而是在每次REST调用时以编程方式将头插入传出的SOAP头中。我想REST不是重要的细节,我希望能够在任何web服务客户机上实现它。碰巧这个客户端也是一个REST端点。。。