Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用JAX-WS 2.0和@WebService通过一个服务发布多个端口

使用JAX-WS 2.0和@WebService通过一个服务发布多个端口
EN

Stack Overflow用户
提问于 2010-09-03 14:17:36
回答 3查看 2.8K关注 0票数 13

我想创建一个公开了多个端口类型的SOAP服务,其中每个端口类型都有一个单独的接口。我正在尝试使用JAX-WS2.0来实现这一点。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface A:
    ObjectA get(String name);

interface B:
    ObjectB get(String name);

Service:
    port A
          get
    port B
          get

我遇到的问题是,@WebService是使用单个类/接口定义的,所以我能够设置的唯一方法就是拥有两个独立的服务。每个服务由一个带有@WebService注释的单独类实现。

我想使用相同的服务公开这两个端口,以明确它们都是同一个API的一部分。这个是可能的吗?

实际上,我所追求的是在WSDL中具有某种嵌套的名称空间支持,这样我就可以在不同的名称空间中使用相同的方法。我将为不同类型的数据提供一个接一个的get/ set /delete方法,但我不希望将它们都放在getA/getB等相同的大接口中,因为我希望以后能够添加新的数据类型,而不会强迫所有客户端从新的WSDL集重新生成。任何实现这一目标的技巧都是受欢迎的,即使这意味着要使用另一种从java代码生成WSDL的方法。

EN

回答 3

Stack Overflow用户

发布于 2010-12-28 22:21:08

您可以尝试重命名其中一个方法,并在@WebMethod注释中显式设置操作或operationName字段。

票数 1
EN

Stack Overflow用户

发布于 2013-12-17 20:36:44

我建议您考虑为每个方法定义一个RequestType (xsd中的复杂类型),而不是将输入参数定义为字符串,这将为您提供以下优势:

  1. 如果你有一个定义的复杂类型,那么请求可以独立地发展,你可以在复杂类型中添加更多的元素,而web方法签名在wsdl中不会改变。
  2. 你可以对上面的两个方法使用相同的名称(比如get(...)),而它们将具有不同的请求类型。您可以通过在xsd (具有相同的名称空间)中使用不同的请求名称定义两个不同的元素来实现这一点。如果希望请求元素具有相同的名称,则必须考虑在不同的名称空间中定义它们。这样,在OOP中,它们将在不同的包中生成,因此它们可以具有相同的名称。

另一方面,我建议让您的操作名称和消息名称尽可能地唯一和具体。

票数 1
EN

Stack Overflow用户

发布于 2014-05-02 06:30:03

Webservices不接受函数重载。我的意思是同名的多个操作是不能做的。如果您需要使用相同的端口和相同的操作名称来返回不同的类对象,您可以尝试以下方法。

接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface OB {
public Object get(String name);
}

网络服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
@WebMethod
public Object get(String name) {
    if(name.equals("A")){
        return new ObjectA("A");
    }else if(name.equals("B")){
        return new ObjectB(1);
    }else {
        return null;
    }
}

在这种情况下,您必须确定需要从请求中返回哪个类对象,然后构造它,返回是其中一种方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3636630

复制
相关文章
设置和获取HTTP标头
%Net.HttpRequest的以下每个属性都包含具有相应名称的HTTP标头的值。如果不设置这些属性,则会自动计算它们:
用户7741497
2022/06/09
2.5K0
查询oracle视图创建语句及如何向视图中插入数据[通俗易懂]
今天由于要测试接口,需要在数据库中插入一些测试数据。但当我在向数据库插入数据的时候,发现接口查询的是视图并不是表,所以将遇到的问题在这里记录一下。
全栈程序员站长
2022/07/28
4.3K0
查询oracle视图创建语句及如何向视图中插入数据[通俗易懂]
我又踩坑了!如何为HttpClient请求设置Content-Type标头?
平台显示 :签名校验失败, 排查到平台收到的Post Payload并非预期,阅读本文,解锁正确使用Content-Type标头的姿势。
有态度的马甲
2020/10/10
8.4K0
我又踩坑了!如何为HttpClient请求设置Content-Type标头?
通过 HTTP 标头的 XSS
在某些情况下,在应用程序的一个 HTTP 标头中传递的信息未正确清理,并在请求页面的某处或另一端输出,从而导致 XSS 情况。
Khan安全团队
2022/03/09
2.1K0
通过主机标头的 XSS
在 IE 中处理重定向时有一个有趣的错误,它可以将任意字符插入到 Host 标头中。假设您有以下 http 响应:
Khan安全团队
2022/01/11
1.6K0
常见的HTTP标头介绍
在网络爬虫的实践过程中会遇到诸多挑战,被屏蔽是最令人头疼的一个。幸好,有许多技术可以帮助您免受IP屏蔽带来的影响,这其中,HTTP标头(HTTP Headers)的使用和优化是最有效的方法之一,但它往往也是最被大家低估的方法之一。
用户7850017
2022/05/07
1.1K0
常见的HTTP标头介绍
MyBatis处理动态设置表名
在MyBatis中,我们可以通过动态SQL语句来处理动态设置表名的需求。例如,在某些情况下,我们需要在查询或更新操作中动态指定表名,例如根据用户的角色动态切换到不同的表中进行操作。
堕落飞鸟
2023/05/15
2.4K0
matplotlib画图中的各种设置
原文出处:https://www.jianshu.com/p/8006d74ac9e7
SL_World
2021/09/18
2.8K0
django 视图中使用多线程
如果你需要在django视图中使用多线程执行其他任务,然后发现执行完后并没有达到你逾期的执行结果,
kirin
2021/04/09
2K0
HANA计算视图中的RANK使用方法
2、当我们必须从源集中的多个记录或前N个或后N个记录中选择最新记录时,这将非常有用。
matinal
2020/11/27
1.6K0
【DB笔试面试541】在Oracle中,如何查找存储过程或视图中引用了哪些基表?
可以查询DBA_DEPENDENCIES视图,该视图记录了对象与对象之间的依赖关系,NAME列为当前对象,而REFERENCED_NAME为其依赖的基对象。所以,该视图也可以查询某个表被哪些对象所引用,从而知道该表是否可以被删除。
AiDBA宝典
2019/09/29
2.1K0
SpringDataJPA笔记(10)-动态设置表名
在实际使用中可能会遇到需要动态设置表名的情况,特别是通常在后台管理系统里面,总有一些相似的功能需要抽象出来写一些公共的方法,以减少代码开发量,降低重复劳动
yingzi_code
2020/03/24
2.2K0
SpringDataJPA笔记(10)-动态设置表名
在 SwiftUI 视图中打开 URL 的若干方法
本文将介绍在 SwiftUI 视图中打开 URL 的若干种方式,其他的内容还包括如何自动识别文本中的内容并为其转换为可点击链接,以及如何自定义打开 URL 前后的行为等。
东坡肘子
2022/07/28
7.8K1
在 SwiftUI 视图中打开 URL 的若干方法
【译】在列表视图中处理空值
本篇文章主要针对两类开发者。第一个是曾遇到过IllegalArgumentException: Path must not be empty问题的开发者。第二个则是当ListView使用了未被完整加载的图像,应用程序仍能正确运转的开发者们。
小鄧子
2018/08/20
1.2K0
如何正确设置CRON定时任务
相信很多人看了标题后都会纳闷:设置 CRON 定时任务有什么难的?不过请相信我,正确设置 CRON 真的不是一件简单的事情!各位看官不妨听我慢慢道来。
LA0WAN9
2021/12/14
1K0
博客站长如何正确设置SEO
提高PR就一个办法——和别的网站多多做友链,链接要越多越好,注意质量,不要选择太垃圾的网站。
老潘
2023/10/19
2540
博客站长如何正确设置SEO
如何设置Ansible AWS的动态清单
当您将Ansible与AWS结合使用时,维护清单文件将是一项繁重的任务,因为AWS经常更改IP,自动缩放实例等。但是,有一个简单的解决方案就是ansible动态清单。它基本上是一个Python脚本,当您运行ansible命令时会进行API调用以获取实例信息。这将为您提供动态清单详细信息,这些信息可以用来方便管理AWS基础架构。
JFrog杰蛙科技
2020/06/24
1.6K0
如何正确的进行数据的分库分表
如果数据多到一定程度,就需要分库分表来存储数据了,这个一定程度的判断也比较难,总体而言,
jerryteng
2021/12/21
1.9K0
如何正确的进行数据的分库分表
点击加载更多

相似问题

如何取消表视图中的表视图节标头

12

设置RecyclerView标头视图中的问题

18

列表视图中的标头

12

在网格视图中冻结标头时,正确设置页眉宽度和列

216

快速访问表视图中的每个标头和控件

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文