Java 使用QName的目的

Java 使用QName的目的,java,web-services,jax-ws,qnames,Java,Web Services,Jax Ws,Qnames,我对QName背后的概念非常困惑 让我们举个例子(我从以下几个例子中得到): 和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);

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

让我们举个例子(我从以下几个例子中得到):

和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=newserverinfoservice();
ServerInfo si=sis.getServerInfoPort()

是简单的代理生成方法;其中,您使用诸如wsimport之类的工具生成SEI(服务端点接口)/web服务接口的代理/存根,并像调用任何其他java方法一样调用其中的方法。主要用于客户端,您只需调用web服务上的方法,而无需了解详细信息

QName
或者更确切地说是
服务
方法提供了对客户机和Web服务通信方式的更好控制。JAXWS 2.0引入了一种称为
提供者
接口的接口,它是SEI的替代品,基本上让客户机在XML消息级别进行通信,并向客户机提供web服务的动态表示/视图。更多
Service
API的主要用途主要是创建
Dispatch
实例,该实例基本上允许客户端使用JAXB消息作为XML有效负载,将其分派到特定的端口(使用QName-API限定的方法)

Service
api的其他用法允许客户端异步调用webservice上的方法;提供接触处理人员的途径;等等。使用
服务
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);