Arc*_*rci 30 java axis2 web-services jax-ws wsimport
在此之前,我想让您知道我已经可以连接到Web服务服务器了.我问这个问题是因为我希望深入了解wsimport生成的客户端是如何工作的.根据我的研究,wsimport使用JAXWS.请注意,我不了解JAXWS.
我使用wsimport生成了我的客户端.我使用的WSDL来自Axis2 Web服务,由Axis2自动生成.下面的类是wsimport的结果:
下 com.datamodel.xsd
DataBeanRequest.java
DataBeanResponse.java
ObjectFactory.java
package-info.java
下 com.service
MyWebService.java
MyWebServicePortType.java
MyMethod.java
MyMethodResponse.java
ObjectFactory.java
package-info.java
使用上面的类,我可以告诉它com.datamodel.xsd
包含Web服务服务器使用的bean(不包括ObjectFactory
和package-info
).同时,MyMethod
和MyMethodResponse
也用于设置的web服务方法/操作的请求和响应参数豆.
以下是我的问题:(如果你不知道我的一些问题的答案,你真的不必回答所有问题.:)请随时分享你认为我可能会觉得有用的任何信息.)
我是否正确
MyWebService
,它包含一个注释,指的是我用来生成客户端的WSDL的绝对位置.wsdllocation
在客户端中指定的相关性是什么?客户如何使用该信息?wsimport
命令有一个wsdllocation
属性,其中wsdllocation
可以指定值.)joe*_*rgl 45
在回答问题之前,请先澄清一下:JAX-WS是用Java实现Web服务的规范.它描述了如何将WSDL工件映射到Java类以及如何使用注释应用此映射.您可以在此处下载规范.工具wsimport是本规范的参考实现的一部分,参考实现是Java类库的一部分.有几种替代实现,例如Axis2,CXF或Metro,它们通过支持其他标准(如WS-ReliableMessaging或WS-Security)来增强基本的JAX-WS支持.
现在回答你的问题:
我的上述假设是否正确?
是的,你是.
其他课程的功能是什么?
的package-info
存在映射在Web服务用于在您的实现类所在的包中的XML命名空间.命名空间通常看起来与Java包名称不同(通常是URL),这使映射成为必要.
将ObjectFactory
允许您创建任何由服务发送和接收的消息.如果要在存根类前面挂钩代码,提供修改后的消息或类似的东西,则需要这样做.
我看不到你的类的内容,但如果我理解它MyWebServicePortType
是一个类似于portType
你的WSDL 的接口.也就是说,它将WSDL中的操作及其签名映射到Java方法.如果您想提供服务(您不需要提供服务,请询问客户端),您需要实现此接口.在实现客户端时,您只需使用它.
最后,MyWebService
如果要调用Web服务,该类包含您需要的客户端存根.
我检查了MyWebService,它包含一个注释,指的是我用来生成客户端的WSDL的绝对位置.在客户端中指定wsdllocation的相关性是什么?客户如何使用该信息?
您生成的界面包含服务的签名portType
,但它不解释您如何与服务进行通信.这是WSDL中绑定的一部分.最基本的设置是使用SOAP over HTTP的消息的文档/文字样式.其他配置(例如SOAP over JMS)是可能的,您的客户端需要知道要使用的协议.因此它需要绑定WSDL.此外,正如您稍后所述,Java文件中没有端点地址.此地址也是从WSDL中读取的.
我注意到Web服务的实际URL未在生成的任何类中声明.客户如何知道需要连接的位置?
它读取address
距离port
的service
WSDL中.这位于WSDL的末尾.
是否对WSDL文件进行了注释,以便客户端可以在连接时读取WSDL文件上的URL?
不,这port
是具体Web服务端点的典型元素.这里没有什么特别的需要.
如果是这样,那么是否意味着在必须建立新连接时始终读取WSDL文件?
好吧,客户端可能有缓存(我不知道这个参考实现的细节).从概念的角度来看:是的,它是.
如果我需要连接到HTTPS,该怎么办?如何设置服务器证书
这可能很棘手,我不能给你一个开箱即用的答案.我建议阅读有关此主题的问题,例如本主题.
当我使用wsimport生成客户端时以及使用Axis2或Apache CXF生成客户端时有什么区别
就在这里.wsimport更好,不要使用wsdl2java.这是一个描述,为什么.
归档时间: |
|
查看次数: |
37590 次 |
最近记录: |