Web Service 编译绑定故障诊断技巧
使用以下技巧对根据 Java™ 编程模型开发和实现的 Web Service 的已编译绑定进行故障诊断。
本主题中的每个部分描述一个问题,这些问题在 Web Service 编译绑定时可能遇到。还提供了有助于对问题进行故障诊断的解决方案。
将缺省 XML 名称空间映射到 Java 包时,未能识别上下文根
当您将缺省 XML 名称空间映射到 Java 包时,未能识别上下文根。如果两个名称空间直到第一个斜杠是相同的,那么它们映射到相同的 Java 包。例如,XML 名称空间 http://www.ibm.com/foo 和 http://www.ibm.com/bar 均映射到 www.ibm.com Java 包。使用 Java2WSDL 命令的 -NStoPkg 选项为标准名称空间指定包。
Java 代码到 Web 服务描述语言 (WSDL) 的映射无法反向映射回原始 Java 代码
如果您发现用 Java2WSDL 命令行工具创建的 WSDL 文件在使用 WSDL2Java 命令行工具再生成 Java 代码时无法编译,那是因为将 Java 代码映射到 WSDL 的“针对基于 XML 的远程过程调用的 Java API”(JAX-RPC) 无法将 WSDL 反向映射回原始的 Java 代码。
要故障诊断该问题,请尝试在 WSDL2Java 命令中指定 -introspect 选项。-instrospect 选项指示 WSDL2Java 命令查看现有 Java 类并收集对生成与初始 Java 代码匹配的工件有用的信息。
访问 Web Service 时,未能将会话 bean 实例化
如果您尝试访问 Web Service 时产生了以下错误:WSWS3422E: 错误:无法将 bean_name 实例化,那么您可能将会话 bean 作为 Servlet 类型的 Web Service 来访问了。
如果在初始测试 Web Service 时显示了此错误消息,那么您需要与 Web Service 开发者一起验证是否生成了正确类型的 Web Service。例如,如果会话 bean 作为 Web Service 来显示,那么会创建企业 bean 类型的 Web Service。作为 Servlet 类型的 Web Service 来访问的会话 bean 可能就会导致此异常。