我正按照http://javadude.wordpress.com/2011/04/25/glassfish-3-1-clustering-tutorial/的指南设置GlassFish群集。我从全新安装的GlassFish 3.1.1开始。我也有与指南中相同的架构:两个节点,每个节点有一个实例。 DAS位于node1上。
我尝试过多次从头开始,并且能够毫无问题地创建群集,节点和实例。我也让DAS通过SSH与node2通信。但是,每次当我尝试启动instance2时,它都会失败:
$ ./asadmin start-local-instance --node node1 --sync normal instance2
Previous synchronization failed at Feb 23, 2012 2:41:53 PM
Will perform full synchronization.
Removing all cached state for instance instance2.
CLI802 Synchronization failed for directory config, caused by:
javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
Command start-local-instance failed.
我花了一天时间用谷歌搜索并搜索GlassFish的Jira,但找不到解决这个问题的方法。我非常感谢你对如何解决这个问题的想法。
我的操作系统是CentOS 5.7,我的Java版本是1.6.0_20
不幸的是我的实例目录是空的,我假设因为它从未启动过。所以没有日志文件。我设置AS_DEBUG = true但它没有给出堆栈跟踪。错误之前的最后一个调试行是
Removing all cached state for instance instance2.
Removing: /usr/local/glassfish3_1_1/glassfish/nodes/blade-50/instance2/config
Removing: /usr/local/glassfish3_1_1/glassfish/nodes/blade-50/instance2/applications
Removing: /usr/local/glassfish3_1_1/glassfish/nodes/blade-50/instance2/generated
Removing: /usr/local/glassfish3_1_1/glassfish/nodes/blade-50/instance2/lib
Removing: /usr/local/glassfish3_1_1/glassfish/nodes/blade-50/instance2/docroot
Got exception: javax.xml.bind.JAXBException
答案 0 :(得分:0)
在tip from a user in the Glassfish forum上执行操作,我了解到Java 1.6.0_20是旧版本的Java,不受Glassfish 3.1.1的支持。我使用系统管理员在群集的两个节点上安装了Java 1.6.0_31,这样做了 - 两个实例都启动时没有错误。