【发布时间】:2014-07-24 07:44:35
【问题描述】:
我有一个正在运行的SOAP 服务,并且还想发布与REST 相同的方法。同一个班级可以使用REST吗?
@Component
@WebService
public class MyService extends SpringBeanAutowiringSupport {
@WebMethod
//@GET
public String ping(@WebParam("input") String test) {
return test;
}
}
<jaxws:endpoint implementor="de.test.MyService" address="/MyService" />
<!-- <jaxrs:server serviceClass="de.test.MyService" address="/HRSService" /> -->
如果我将@GET 和jaxrs 注释掉,则会抛出以下错误:
org.apache.cxf.service.factory.ServiceConstructionException: There is an endpoint already running on /MyService.
那么,我不能在同一个服务中运行两者吗?
【问题讨论】:
-
那是糟糕的设计。创建一个完成工作的业务服务类和两个包装器 - 一个用于 JAX-WS,一个用于 JAX-RS
-
我当然同意业务服务类检索模型/数据是很好的做法,但是,根据请求/输入数据的方式,您可能会使用组合 JSON 来“逃脱” /SOAP-返回函数策略(请参考我的回答,如下)。
标签: java web-services rest soap