Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 发行说明

样例

本节介绍与 Application Server 8.1 产品附带的样例代码相关的已知问题和相应的解决方法。

错误号 

摘要 

6195092 

setup-one-machine-cluster 在 Windows 上会挂起,但在 Solaris 上可以正常工作;mqfailover 需要使用 Ctrl+C 组合键取消,然后必须重新运行。

如果从 install_dir\samples\ee-samples\failover\apps\mqfailover\docs\index.html 运行以下命令:

  • 控制台 1


    cd install_dir\samples\ee-samples asant start-mq-master-broker1
  • 控制台 2


    cd install_dir\samples\ee-samples asant start-mq-cluster-broker1
  • 控制台 3


    cd install_dir\samples\ee-samples asant start-mq-cluster-broker2
  • 控制台 4


    cd install_dir\samples\ee-samples asadmin start-domain domain1

如果已经为任何其他 Enterprise Edition 样例执行了 asant setup-one-machine-cluster-without-haasant setup-one-machine-cluster-with-ha,则请执行 asant configure-mq,否则请执行 asant setup-one-machine-cluster-and-configure-mq。在这种情况下,命令显示为成功:


start_nodeagent: [echo] 启动节点代理 cluster1-nodeagent 
[exec] 命令 start-node-agent 执行成功。

但随后系统将无限期挂起。 

解决方法

目前尚无解决方法。此问题同样会影响在 Windows 上使用此 ant 目标的所有 Enterprise Edition 样例。一个解决方法是按 Ctrl+C 组合键退出挂起的进程,然后重新运行它。

6198003 

文档没有明确说明在执行 asadmin 部署指令之后,需要在运行 MQ 故障转移样例应用程序之前创建 JMS 资源。

抛出的错误如下: 


/opt/SUNWappserver/domains/domain1/config/sun-acc.xml -name 
MQFailoverTestClient -textauth -user j2ee -password j2ee
Nov 18, 2004 10:50:17 PM com.sun.enterprise.naming.NamingManagerImpl 
bindObjects
SEVERE: NAM0006: JMS Destination object not found: jms/durable/TopicA
Nov 18, 2004 10:50:18 PM com.sun.enterprise.naming.NamingManagerImpl 
bindObjects
SEVERE: javax.naming.NameNotFoundException
javax.naming.NameNotFoundException

文档没有明确说明如果使用 asadmin deploy 命令进行了手动部署则必须手动创建 JMS 资源,并且应使用提供的 ant 目标来部署样例应用程序。

解决方法

asant 部署目标用于 build.xml 脚本,该脚本用于创建运行应用程序所需的 JMS 资源。

6198239 

在 Linux 上,在 Web 服务/安全性样例中创建证书的过程中会发生运行时错误。 

在 Linux 上,部署 install_dir/samples/webservices/security 样例 (basicSSl) 时未创建证书,而抛出类似如下的错误:


generate_certs: [echo] ***Exporting certificate from NSS database 
[exec] Result: 1 [echo] ***Generating Java Keystore from generated 
certificate 
[exec] keytool error: java.lang.Exception: Input not an X.509 
certificate [exec] Result: 1 [echo] ***Generating Java trust store 
from generated certificate 
[exec] keytool error: java.lang.Exception: Input not an X.509 certificate 
[exec] Result: 1
.
.
.
generate_certs: [echo] ***Exporting server certificate from NSS database 
to a PKCS12 certificate file 
[exec] /opt/sun/appserver/lib/pk12util: /usr/lib/libnss3.so: version 
`NSS_3.9' not found (required by /opt/sun/appserver/lib/pk12util) 
[exec] /opt/sun/appserver/lib/pk12util: /usr/lib/libnss3.so: version 
`NSS_3.6' not found (required by /opt/sun/appserver/lib/pk12util) 
[exec] /opt/sun/appserver/lib/pk12util: /usr/lib/libnss3.so: version 
`NSS_3.7' not found (required by /opt/sun/appserver/lib/pk12util) 
[exec] Result: 1

问题在于 NSS 库在 Linux 安装上的位置与其在 Solaris 安装上的位置不同。在 Linux 上部署时,必须确保 LD_LIBRARY_PATH 指向正确的 NSS 库。在您的环境中或在 install_dir/bin/asant shell 包装程序脚本中设置 LD_LIBRARY_PATH

解决方法

执行以下操作之一: 

  • 设置 LD_LIBRARY_PATH=/opt/sun/private/lib

  • 将以下行添加到 install_dir/bin/asant 脚本:


    LD_LIBRARY_PATH=$AS_NSS:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH