【发布时间】:2012-08-27 19:58:11
【问题描述】:
首先,我想让您知道我已经可以连接到 Web 服务服务器。我问这个问题是因为我想更深入地了解 wsimport 生成的客户端是如何工作的。根据我的研究,wsimport 使用 JAXWS。请注意,我不了解 JAXWS。
我使用 wsimport 生成了我的客户端。我使用的 WSDL 来自 Axis2 Web 服务,由 Axis2 自动生成。下面的类是wsimport的结果:
com.datamodel.xsd下
DataBeanRequest.javaDataBeanResponse.javaObjectFactory.javapackage-info.java
com.service下
MyWebService.javaMyWebServicePortType.javaMyMethod.javaMyMethodResponse.javaObjectFactory.javapackage-info.java
通过上面的类,我可以看出com.datamodel.xsd 包含Web 服务服务器使用的bean(不包括ObjectFactory 和package-info)。同时MyMethod和MyMethodResponse也是用于设置Web服务方法/操作的请求和响应参数的bean。
以下是我的问题:(如果您不知道我的某些问题的答案,您实际上不必回答所有问题。:) 请随时分享您认为我可能找到的任何信息有用。)
我说得对吗
- 我的上述假设是否正确?
- 其他类的作用是什么?
- 我检查了
MyWebService,它包含一个注释,它引用了我用来生成客户端的WSDL 的绝对位置。在客户端指定wsdllocation有什么相关性?客户如何使用这些信息? - 我注意到 Web 服务的实际 URL 没有在任何生成的类中声明。客户端如何知道它需要连接到哪里?
- 是否对 WSDL 文件进行了注释,以便客户端可以在连接时读取 WSDL 文件上的 URL?如果是这样,是否意味着必须建立新连接时始终读取 WSDL 文件?
由于我需要编译我的应用程序并将其安装在不同的服务器上,因此将变得无效。我可以将其设置为相对路径而不是绝对路径吗?如何? (答:可以,可以设置成相对路径。wsimport命令有wsdllocation属性,其中wsdllocation的值可以指定。)- 如果我需要连接到 HTTPS,该怎么办。如何设置服务器证书?
- 使用 wsimport 生成客户端和使用 Axis2 或 Apache CXF 生成客户端时有什么不同吗?
【问题讨论】:
标签: java web-services jax-ws axis2 wsimport