gpt4 book ai didi

java - RESTful 服务客户端可以作为 SOAP 服务的服务器吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:52 26 4
gpt4 key购买 nike

我正在研究使用 Java 的 Web 服务,想知道这是否可行。

我使用 Java 客户端库制作了一个 RESTful 服务客户端,它遵循 REST 的原则。

(更具体地说,我在 Github 上找到了这个库并正在使用它。这个 Java 库与 CKAN 交互,CKAN 是一种基于 Web 的开源数据系统)

然后,我想知道(我仍然想知道)这个 REST 客户端是否可以用作 SOAP Web 服务的服务器,正如这张图片所描述的那样。

enter image description here

我通过在 EJB 中创建 Web 服务类进行了尝试。我将与 REST 客户端几乎相同的代码编写到 EJB 的 Web 服务类中,以便 Web 服务类将使用 GET、POST 和 DELETE 方法。

但是,当我尝试部署此 EJB(SOAP Web 服务)时,Glassfish 服务器表明...

正在使用相同的端点 URL ckan/ckan 部署两个 Web 服务;最后加载的服务将始终是针对该 URL 处于 Activity 状态的服务。

调用类 org.glassfish.ejb.startup.EjbDeployer 加载方法时出现异常

java.lang.RuntimeException:EJB 容器初始化错误

这可能只是因为我已经制作了一个使用相同 URL 的 REST 客户端,但我还没有找到真正的原因。

您认为,在 SOAP Web 服务中,服务器端是否可以拥有标准化的服务器方法(即 GET/POST/DELETE 等)以便与外部数据存储库(在我的例子中是 CKAN ...基于 Web 的数据管理系统)进行交互?

任何见解都将受到赞赏。

PS

使用REST客户端作为SOAP的服务器的目的是测试REST和SOAP的安全问题并进行比较。我认为以这种方式使用 REST 客户端并不实际。

最佳答案

如果我正确理解您的问题,出于研究(而非实际)原因,您希望让 REST Web 服务调用 SOAP Web 服务(反之亦然)。对于一些较旧的库,由于库中的设计/代码问题,这是不可能的。但是,如果您使用当前版本的库,情况就不再如此。

使用您想要的 API 构建 REST 服务(Spring 库可以很好地做到这一点),并将 Controller 方法映射到您想要调用的 SOAP Web 服务(反之亦然)。您正在讨论几个带有 Spring 注释的 Controller 类和一些包装器代码以及 Java EE 的一些废话。

如果我倒着理解这个问题,答案本质上是相同的 - 只需交换 SOAP 和 REST 注释即可。

关于java - RESTful 服务客户端可以作为 SOAP 服务的服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com