Sun GlassFish Enterprise Server 2.1 发行说明

Web 服务

本节介绍已知的 Web 容器问题和相应的解决办法。

Ant 任务 wsimport 不可用于 Java EE SDK b33d (使用 JDK 1.6),并出现 NoClassDefFoundError (6527842)

说明

使用 Java EE SDK b33d 附带的 JDK 1.6 运行 JAX—WS 测试时可能会遇到问题。这些测试会立即中止,并且显示以下消息:


[wsimport] Exception in thread "main" java.lang.NoClassDefFoundError: \
com/sun/tools/ws/WsImport

即使 webservices-tools.jar 不包含 com/sun/tools/ws/WsImport.classcom/sun/tools/ws/ant/WsImport.classcom/sun/tools/ws/ant/WsImport2.class,也会发生此错误。而且,同一个测试工作区可以使用 1.5.0-10 JDK 运行,而不会出现任何问题。

解决方法

在运行 JAX-WS 测试之前,将 webservices-api.jar 复制到 $JAVA_HOME/jre/lib/endorsed

publish-to-registry 命令在 IFR EE 内部版本中失败 (6602046)

说明

JAXR 使用 SAAJ 将 SOAP 消息发送到注册表。在非 IFR 的情况下,SAAJ impl 类位于 lib/webservices-rt.jar 下。在 IFR 的情况下,SAAJ 类仍位于 lib/webservices-rt.jar 下。此外,saaj-impl.jar 位于 /usr/share/lib 目录中。此 jar 文件由 Enterprise Server 拾取,并且其优先级高于 webservices-rt.jar 中的类。此 jar 文件不具有将 SOAP 消息发送到 Web 服务注册表所需的必要安全权限。此打包应该修改为向 /usr/share/lib 目录下的 jar 授予权限,或者与 /usr/share/lib jar 无关。

解决方法

将以下内容添加到 server.policy 文件:


grant codeBase "file:/usr/share/lib/saaj-impl.jar" {
   permission java.security.AllPermission;
};

在 JDK6 u4 b3 上 wscompile 失败并显示 "package javax.xml.rpc does not exist" (6638567)

说明

针对 JDK 6 Update 4 执行的 wscompile ant 任务失败。对于每个 JAX-RPC API 类,会显示以下错误消息:


package package-name does not exist

解决方法

在运行 wscompile ant 任务之前,确保在类路径而不是 j2ee.jar 中指定 javaee.jar