您可以使用 Web 服务属性编辑器的“WSDL 定制”面板来定制通过 WSDL 创建的 JAX-WS (Java EE 5) Web 服务和客户端。在上述情况中,将调用 wsimport 来生成 JAX-WS 工件。缺省条件下,wsimport 会遵循 JAX-WS 规范指定的绑定规则。您可以使用“WSDL 定制”面板来定制生成这些工件时 wsimport 的行为。
您可以从“项目”窗口中访问 Web 服务属性编辑器的“WSDL 定制”面板。右键单击表示“WSDL 来源”工件的节点,然后选择“编辑 Web 服务属性”,例如,对于 Web 服务客户端,请展开“Web 服务引用”节点,右键单击表示 Web 服务客户端的节点,然后选择“编辑 Web 服务属性”,将显示该编辑器。然后选择“WSDL 定制”标签,将打开该面板。
您可以使用“WSDL 定制”面板的“全局定制”部分来定制整个 WSDL 文件。即,如果不启用低级别元素的定制,则在“全局定制”部分指定的任何定制都将应用于 WSDL 文件的所有关联元素中。例如,如果在“全局定制”部分选中了“启用异步客户端”,但是没有对任何端口类型或端口类型操作执行任何定制,则 WSDL 文件中的所有操作都将生成为异步操作。然而,您可以启用高级别的定制。
继续看上面的示例,如果有两个端口类型 A 和 B,并且在端口类型 B 中禁用了异步操作,则 A 中的所有操作都是异步操作,而 B 中的操作将不是异步操作。您可以随后启用操作级别的定制。因此,将按照以下分层结构“全局定制”>“多个端口类型”>“端口类型”启用定制机制。
您可以定义以下全局属性:
SetLastTradePriceResponse setLastTradePrice(SetLastTradePrice setLastTradePrice);
然而,如果存在包装样式,wsimport 将生成以下 Java 代码:
void setLastTradePrice(String tickerSymbol, float lastTradePrice);
正如所看到的那样,如果有包装样式,方法参数将分解为不同的组成部分。因此,指定包装样式或非包装样式取决于开发者的编码风格。