本节介绍与 Application Server 8.2 产品附带的样例代码相关的已知问题和相应的解决方法。
如果从 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-ha 或 asant setup-one-machine-cluster-with-ha,则请执行 asant configure-mq,否则请执行 asant setup-one-machine-cluster-and-configure-mq。在这种情况下,命令显示为成功:
start_nodeagent: [echo] Start the node agent cluster1-nodeagent [exec] Command start-node-agent executed successfully. |
但随后系统将无限期挂起。
目前尚无解决方法。此问题同样会影响在 Windows 上使用此 ant 目标的所有 Enterprise Edition 样例。一个解决方法是按 Ctrl+C 组合键退出挂起的进程,然后重新运行它。
抛出的错误如下:
/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 资源。
在 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 |
从 Application Server Platform Edition 8.0 更新到 Application Server Enterprise Edition 8.2 后,可能在尝试访问样例页时收到 HTTP 404“找不到文件”错误。
将样例文档从 8.0 域复制到 8.2 域。
在 Solaris 全局区域中安装了 Application Server Enterprise Edition 8.2,并随后在稀疏本地区域中安装了 Application Server 域时,如果在部署过程中稀疏区域中此域的文件权限未完全开放,则可能在运行样例应用程序时遇到问题。
部署过程中,请确保 Application Server 可以检索客户机 JAR 文件 xmsClient.jar,并可以将它复制到样例位置 (/usr/SUNWappserver/appserver/samples/webservices/security/ejb/apps/xms/xmsClient.jar)。这通常由样例工具自动完成,但如果未开放 xmsClient.jar 的权限,此操作将失败。