gpt4 book ai didi

java - 使用 QName 的目的

转载 作者:行者123 更新时间:2023-11-30 03:45:43 26 4
gpt4 key购买 nike

我对 QName 背后的概念非常困惑。

让我们举个例子(我从 http://www.mkyong.com/ 中获取了这些例子):

        ServerInfoService sis = new ServerInfoService();
ServerInfo si = sis.getServerInfoPort();
System.out.println(si.getServerName());

并使用 QName :

        URL url = new URL("http://localhost:8888/ws/image?wsdl");
QName qname = new QName("http://ws.mkyong.com/", "ImageServerImplService");
Service service = Service.create(url, qname);
ImageServer imageServer = service.getPort(ImageServer.class);

现在我的问题是:

1)是否有任何概念可供我们决定可以编写哪种类型的客户端

2)使用 QName 的目的或额外好处是什么,因为我在这里所能看到的是,与简单客户端相比,它增加了复杂性。

最佳答案

这是我所知道的:-

这取决于您希望如何利用客户端来调用 Web 服务。第一种方法

ServerInfoService sis = new ServerInfoService();
ServerInfo si = sis.getServerInfoPort();

是简单的代理生成方法;其中,您使用像 wsimport 这样的工具来生成 SEI(服务端点接口(interface))/Web 服务接口(interface)的代理/ stub ,并像任何其他 java 方法调用一样调用其上的方法。主要用于您只需要调用 Web 服务上的方法而无需了解具体细节的客户端。

QName 或者更确切地说,Service 方法提供了对客户端和 Web 服务通信方式的更精细的控制。 JAXWS 2.0 引入了称为 Provider 接口(interface)的东西,它是 SEI 的替代方案,它基本上让客户端在 XML 消息级别进行通信,并向客户端提供 Web 服务的动态表示/ View 。更多 hereService API 的主要用途主要是创建 Dispatch 实例,该实例基本上让客户端使用 JAXB 消息作为 XML 有效负载分派(dispatch)到特定端口(使用 QName api 限定的方法)。

Service API 的其他用途可让客户端异步调用 Web 服务上的方法;提供对处理程序的访问;使用 ServiceQName 方法来帮助您进一步理解并与我所说的内容相关联的一个很好的例子是这里的链接:- Dispatching Web Service Calls .

话虽这么说,还有很多东西需要了解和理解;但希望这能给您一个开始。

关于java - 使用 QName 的目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757161/

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