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
通过上面的类,我可以分辨出它包含Web服务服务器使用的bean(不包括和)。同时,也用于设置Web服务方法/操作的请求和响应参数。com.datamodel.xsd
ObjectFactory
package-info
MyMethod
MyMethodResponse
以下是我的问题:(如果你不知道我的一些问题的答案,你真的不必回答所有的问题。:)请随时分享您认为我可能会发现有用的任何信息。
我是对的吗
- 我上面的假设是否正确?
- 其他类的功能是什么?
- 我检查了一下,它包含一个注释,引用了我用于生成客户端的WSDL的绝对位置。在客户端中指定 的相关性是什么?客户端如何使用该信息?
MyWebService
wsdllocation
- 我注意到 Web 服务的实际 URL 未在生成的任何类中声明。客户端如何知道它需要连接到的位置?
- 是否对 WSDL 文件进行了批注,以便客户端可以在连接时读取 WSDL 文件上的 URL?如果是这样,那么这是否意味着在必须建立新连接时始终读取 WSDL 文件?
由于我需要编译应用程序并将其安装在其他服务器上,因此将变得无效。是否可以将其设置为相对路径而不是绝对路径?如何?(答:是的,可以将其设置为相对路径。wsimport
命令具有wsdllocation
属性,其中可以指定wsdllocation
的值。- 如果我需要连接到 HTTPS,该怎么办?如何设置服务器证书?
- 当我使用wsimport生成我的客户端和使用Axis2或Apache CXF生成它时,有什么区别吗?