通常,生成在 Java 应用程序或 Web 应用程序中实现的 Web 服务客户端的方式与生成任何其他项目一样。与生成其他项目一样,IDE 会自动检测项目是否为 J2EE 应用程序的一部分,并相应地设置是否包装类路径上的归档文件。可以在模块项目的“项目属性”对话框中调整与模块包装在一起的归档文件。
但是,在生成进程中将运行 wscompile 工具。它通过 WSDL 文件来生成 Web 服务客户端,该文件描述了 Web 服务的外部接口。wscompile 工具提供了一些功能,您可以设置这些功能以优化生成的 Web 服务客户端。
生成 Web 服务客户端:
定制 wscompile 工具的功能:
功能 | 对 Web 服务客户端的影响 |
---|---|
datahandleronly | 将附件映射到 DataHandler 类型。 |
donotoverride | 不重新生成在类路径中已存在的类。 |
donounwrap | 在 WSI 模式下,禁止展开 document/literal 包装器元素(缺省)。 |
explicitcontext | 打开显式的服务上下文映射。 |
jaxbenumtype | 将匿名枚举映射到其基本类型。 |
nodatabinding | 关闭 literal 编码的数据绑定。 |
noencodedtypes | 关闭编码类型信息。 |
nomultirefs | 关闭对多个引用的支持。 |
norpcstructures | 不生成任何 RPC 结构(仅限 -import)。 |
novalidation | 关闭对导入的 WSDL 文档进行的完整验证。 |
resolveidref | 解析 xsd:IDREF。 |
searchschema | 主动搜索架构中的类型。 |
serializeinterfaces | 直接对接口类型进行串行化。 |
strict | 生成严格遵循 JAXRPC 规范的代码。 |
unwrap | 在 WSI 模式下,允许展开 document/literal 包装器元素。 |
wsi | 检查是否遵循 WSI-Basic Profile,此规范用于提高互操作性。例如,WS-I Basic Profile 禁止使用 rpc/encoded。因此,如果设置了 wsi 功能,则在生成使用 WSDL 文件(使用 rpc/encoded)的 Web 服务客户端时,将会产生一则警告消息。 |