web-services - SOAP 和 REST Web 服务在 Java EE 中具有一种实现

标签 web-services rest jakarta-ee soap jboss

是否有可能(Java EE、JBoss 6)巧妙地注释 Java 代码以提供 RESTful 和 SOAP Web 服务而不实现两种方法?

我在想:

@Local
@Path("/service")
@WebService
public interface SomeService {
    @GET @Path("somemethod")
    @WebMethod
    public String someMethod (@QueryParam("s") String someParam);
}

请注意两个 @Path 和 @WebService 注释(不幸的是,上面的例子不起作用)。

最佳答案

虽然 JAX-WS 和 JAX-RS 注释可以非常愉快地共同使用相同的方法,但我发现很难相信任何经过良好调整以与 JAX-RS 一起使用的接口(interface)都可能非常适合 JAX-WS,反之亦然反之亦然。问题不是你做不到,问题是你不应该;他们有不同的世界模型,不同的概念意味着什么是好的界面。

但如果你只是做一些简单的事情,比如简单的查找,它确实可以工作:

@GET
@Path("foo/{id}")
@Produces("application/xml")
@WebMethod(operationName = "DescribeFoo")
@WebResult(name = "Description")
public DescriptionOfFoo getFooDescription(
        @PathParam("id")
        @WebParam(name = "fooId")
        String id) {
    return get_the.description_of(id); // Whatever...
}

我喜欢尽可能多地放在接口(interface)上(检查你的框架文档以了解如何使它们工作),因为这将上述部分(!!)可能的注释集降低到更合理的水平。 (作为引用,当事情开始变得复杂并且您在非平凡的模式中应用多个方面时,您可以轻松地获得每个方法的 20 多个注释,其中一些与您的实现有关,其中一些与一个或另一个有关您的界面;分区促进理智。)

关于web-services - SOAP 和 REST Web 服务在 Java EE 中具有一种实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871815/

相关文章:

java - eclipse 中的 Struts.xml 包命名空间

Java监听http消息

android - Android 中的 Web 服务使用

c# - MVC 从 Web 服务解析 XML

xml - W3 和 xmlsoap.org 架构之间有什么区别?

python - django - 发布数据查询字典为空

子资源的API设计?

rest - 在 Acumatica 中使用 REST API 将数据提供程序和场景替换为代码

带有 IceFaces 3.1.0 的 JavaEE - 组件未正确初始化

java - 为什么将类注释为@Service 不创建 bean?