Java RESTful web服务端点上的JAX-WS@WebService
不久前,在其中一个项目中,我在一些jersey根(@Path)资源类上找到了@WebService注释。据我当时的理解,这是一些遗留代码,或者只是一个误用的JAX-WS注释。最近,我偶然发现,为了EJB,将JAX-RS服务与@WebService注释混合在一起(顺便说一句,我所从事的项目根本没有使用EJB,所以我仍然认为这是对@WebService的不当使用)。由于所有这些,我现在感到困惑,如果将@WebService和JAX-RS混合在一起总体上是合理的,那么情况是什么呢?除了上面提到的EJB特性之外,还有什么吗?使用Java RESTful web服务端点上的JAX-WS@WebService,java,jax-rs,jax-ws,ejb-3.0,Java,Jax Rs,Jax Ws,Ejb 3.0,不久前,在其中一个项目中,我在一些jersey根(@Path)资源类上找到了@WebService注释。据我当时的理解,这是一些遗留代码,或者只是一个误用的JAX-WS注释。最近,我偶然发现,为了EJB,将JAX-RS服务与@WebService注释混合在一起(顺便说一句,我所从事的项目根本没有使用EJB,所以我仍然认为这是对@WebService的不当使用)。由于所有这些,我现在感到困惑,如果将@WebService和JAX-RS混合在一起总体上是合理的,那么情况是什么呢?除了上面提到的EJB
@WebService
将JAX-RSbean公开为SOAP WS的方法在技术上是可能的。它不会导致一个好的API设计
考虑一些非常常见的JAX-RS方法:
@GET
@Path("/foos")
@Produces("application/json")
public Response getFoos() {
// get all Foos
List<Foo> foos = ...;
return Response.ok(foos).build();
}
@GET
@Path("/foos/{id}")
@Produces("application/json")
public Response getSingleFoo(@PathParam("id") String id) {
// get the Foo
Foo foo = ...;
return Response.ok(foo).build();
}
@GET
@路径(“/foos”)
@生成(“应用程序/json”)
公共响应getFoos(){
//得到所有食物
列出foos=。。。;
返回Response.ok(foos.build();
}
@得到
@路径(“/foos/{id}”)
@生成(“应用程序/json”)
公共响应getSingleFoo(@PathParam(“id”)字符串id){
//得到食物
Foo-Foo=。。。;
返回Response.ok(foo.build();
}
很明显,调用这些方法的URL的结构以及结果是什么
但是使用@WebService
公开这些方法会导致许多问题:
- SOAP响应中的
响应是什么
- 响应会使用JSON作为表示吗
- 这些方法是如何调用的
不要这样做。所以,这正是我最初的想法。谢谢