Sun Java System Application Server 9.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 文件由 Application 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;
};