今天在一个测试环境中启动jboss时,不能正常启动,后来找了一会儿才查到了原因,记录一下吧。
在jboss.log中可以看到“Could not create deployment: file:/usr/local/jboss/server/default/conf/jboss-service.xml”这样的记录,但我仔细查了一下并非权限的问题。后来找了很久原因,结合网上搜索,加上仔细看到了“Caused by: java.lang.RuntimeException: Exception creating identity: host_221-83: host_221-83”的记录;才基本确定了是由于hostname解析不了,所以jboss不能正常启动。
解决方案很简单,要么是配置DNS使其能够解析本机的hostname(可用命令hostname获取),要么修改/etc/hosts文件使其解析为127.0.0.1即可。
如,我的/etc/hosts就修改为如下,添加了本机的hostname为“host_221-83”。
127.0.0.1 host_221-83 localhost localhost.localdomain localhost4 localhost4.localdomain4
其实,网上其他人也会遇到这个问题的,至于为什么jboss启动需要去解析本机主机名,我也没有深入调查了。
网上其他人也遇到了类似问题,见:https://community.jboss.org/thread/64649?tstart=0
另外,顺手记录一个jboss启动的参数,加上 -b 0.0.0.0 或 –host=0.0.0.0 才能保证服务能够被域名/IP/localhost等方式访问到,否则默认是localhost才行。
/usr/local/jboss/bin/run.sh -b 0.0.0.0
关于遇到的jboss不能启动的问题的详细日志在jboss.log中,摘录如下:
Listening for transport dt_socket at address: 8787
17:29:53,250 INFO [Server] Starting JBoss (MX MicroKernel)...
17:29:53,251 INFO [Server] Release ID: JBoss [Trinity] 4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)
17:29:53,253 INFO [Server] Home Dir: /usr/local/jboss
17:29:53,253 INFO [Server] Home URL: file:/usr/local/jboss/
17:29:53,254 INFO [Server] Patch URL: null
17:29:53,254 INFO [Server] Server Name: default
17:29:53,254 INFO [Server] Server Home Dir: /usr/local/jboss/server/default
17:29:53,254 INFO [Server] Server Home URL: file:/usr/local/jboss/server/default/
17:29:53,254 INFO [Server] Server Log Dir: /usr/local/jboss/server/default/log
17:29:53,255 INFO [Server] Server Temp Dir: /usr/local/jboss/server/default/tmp
17:29:53,255 INFO [Server] Root Deployment Filename: jboss-service.xml
17:29:53,450 INFO [ServerInfo] Java version: 1.6.0_26,Sun Microsystems Inc.
17:29:53,451 INFO [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 20.1-b02,Sun Microsystems Inc.
17:29:53,451 INFO [ServerInfo] OS-System: Linux 2.6.32-279.el6.x86_64,amd64
17:29:53,667 INFO [Server] Core system initialized
17:29:54,714 WARN [BasicMBeanRegistry] javax.management.MBeanRegistrationException: preRegister() failed: [ObjectName='jboss.remoting:service=NetworkRegistry', Class=org.jboss.remoting.network.NetworkRegistry (org.jboss.remoting.network.NetworkRegistry@78688954)]
17:29:54,726 ERROR [MainDeployer] Could not create deployment: file:/usr/local/jboss/server/default/conf/jboss-service.xml
org.jboss.deployment.DeploymentException: - nested throwable: (java.lang.reflect.InvocationTargetException)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:196)
at org.jboss.system.ServiceController.install(ServiceController.java:226)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy4.install(Unknown Source)
at org.jboss.deployment.SARDeployer.create(SARDeployer.java:249)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy5.deploy(Unknown Source)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
at org.jboss.Main.boot(Main.java:200)
at org.jboss.Main$1.run(Main.java:508)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1451)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1350)
at org.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:345)
at org.jboss.system.ServiceCreator.install(ServiceCreator.java:157)
at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:451)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:171)
... 36 more
Caused by: javax.management.MBeanException
at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:180)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:163)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1422)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1417)
... 41 more
Caused by: javax.management.MBeanRegistrationException: preRegister() failed: [ObjectName='jboss.remoting:service=NetworkRegistry', Class=org.jboss.remoting.network.NetworkRegistry (org.jboss.remoting.network.NetworkRegistry@78688954)]
at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:713)
at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:211)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
... 51 more
Caused by: java.lang.RuntimeException: Exception creating identity: host_221-83: host_221-83
at org.jboss.remoting.ident.Identity.get(Identity.java:211)
at org.jboss.remoting.network.NetworkRegistry.preRegister(NetworkRegistry.java:268)
at org.jboss.mx.server.AbstractMBeanInvoker.invokePreRegister(AbstractMBeanInvoker.java:966)
at org.jboss.mx.modelmbean.ModelMBeanInvoker.invokePreRegister(ModelMBeanInvoker.java:489)
at org.jboss.mx.server.AbstractMBeanInvoker.preRegister(AbstractMBeanInvoker.java:654)
at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:697)
... 56 more
Failed to boot JBoss:...
.......
17:29:54,732 INFO [Server] Runtime shutdown hook called, forceHalt: true
17:29:54,732 INFO [Server] JBoss SHUTDOWN: Undeploying all packages
17:29:54,739 INFO [Server] Shutdown complete
Shutdown complete
Halting VM