tomcat启动提示couldn‘t get host name
问题描述
系统之前是可以正常运行的,更新后启动tomcat报如下错误:
2020-07-31 17:21:39 [main] info org.quartz.impl.stdschedulerfactory - using default implementation for threadexecutor
2020-07-31 17:21:39 [main] error org.quartz.impl.stdschedulerfactory - couldn't generate instance id!
org.quartz.schedulerexception: couldn't get host name!
at org.quartz.simpl.simpleinstanceidgenerator.generateinstanceid(simpleinstanceidgenerator.java:36)
at org.quartz.impl.stdschedulerfactory.instantiate(stdschedulerfactory.java:1235)
at org.quartz.impl.stdschedulerfactory.getscheduler(stdschedulerfactory.java:1559)
at org.springframework.scheduling.quartz.schedulerfactorybean.createscheduler(schedulerfactorybean.java:637)
at org.springframework.scheduling.quartz.schedulerfactorybean.afterpropertiesset(schedulerfactorybean.java:511)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1765)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1702)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:579)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:501)
at org.springframework.beans.factory.support.abstractbeanfactory.lambda$dogetbean$0(abstractbeanfactory.java:317)
at org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:228)
at org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:315)
at org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:199)
at org.springframework.beans.factory.config.dependencydescriptor.resolvecandidate(dependencydescriptor.java:251)
at org.springframework.beans.factory.support.defaultlistablebeanfactory.doresolvedependency(defaultlistablebeanfactory.java:1138)
at org.springframework.beans.factory.support.defaultlistablebeanfactory.resolvedependency(defaultlistablebeanfactory.java:1065)
at org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$autowiredfieldelement.inject(autowiredannotationbeanpostprocessor.java:584)
at org.springframework.beans.factory.annotation.injectionmetadata.inject(injectionmetadata.java:91)
at org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor.postprocesspropertyvalues(autowiredannotationbeanpostprocessor.java:373)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.populatebean(abstractautowirecapablebeanfactory.java:1348)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:578)
at org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:501)
at org.springframework.beans.factory.support.abstractbeanfactory.lambda$dogetbean$0(abstractbeanfactory.java:317)
at org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:228)
at org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:315)
at org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:204)
at org.springframework.context.support.postprocessorregistrationdelegate.registerbeanpostprocessors(postprocessorregistrationdelegate.java:238)
at org.springframework.context.support.abstractapplicationcontext.registerbeanpostprocessors(abstractapplicationcontext.java:710)
at org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:535)
at org.springframework.boot.web.servlet.context.servletwebserverapplicationcontext.refresh(servletwebserverapplicationcontext.java:140)
at org.springframework.boot.springapplication.refresh(springapplication.java:759)
at org.springframework.boot.springapplication.refreshcontext(springapplication.java:395)
at org.springframework.boot.springapplication.run(springapplication.java:327)
at org.springframework.boot.web.servlet.support.springbootservletinitializer.run(springbootservletinitializer.java:155)
at org.springframework.boot.web.servlet.support.springbootservletinitializer.createrootapplicationcontext(springbootservletinitializer.java:135)
at org.springframework.boot.web.servlet.support.springbootservletinitializer.onstartup(springbootservletinitializer.java:87)
at org.springframework.web.springservletcontainerinitializer.onstartup(springservletcontainerinitializer.java:172)
at org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5125)
at org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:183)
at org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:713)
at org.apache.catalina.core.containerbase.addchild(containerbase.java:690)
at org.apache.catalina.core.standardhost.addchild(standardhost.java:695)
at org.apache.catalina.startup.hostconfig.deploywar(hostconfig.java:978)
at org.apache.catalina.startup.hostconfig$deploywar.run(hostconfig.java:1850)
at java.util.concurrent.executors$runnableadapter.call(executors.java:511)
at java.util.concurrent.futuretask.run(futuretask.java:266)
at org.apache.tomcat.util.threads.inlineexecutorservice.execute(inlineexecutorservice.java:75)
at java.util.concurrent.abstractexecutorservice.submit(abstractexecutorservice.java:112)
at org.apache.catalina.startup.hostconfig.deploywars(hostconfig.java:773)
at org.apache.catalina.startup.hostconfig.deployapps(hostconfig.java:427)
at org.apache.catalina.startup.hostconfig.start(hostconfig.java:1577)
at org.apache.catalina.startup.hostconfig.lifecycleevent(hostconfig.java:309)
at org.apache.catalina.util.lifecyclebase.firelifecycleevent(lifecyclebase.java:123)
at org.apache.catalina.util.lifecyclebase.setstateinternal(lifecyclebase.java:424)
at org.apache.catalina.util.lifecyclebase.setstate(lifecyclebase.java:367)
at org.apache.catalina.core.containerbase.startinternal(containerbase.java:929)
at org.apache.catalina.core.standardhost.startinternal(standardhost.java:831)
at org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:183)
at org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1377)
at org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1367)
at java.util.concurrent.futuretask.run(futuretask.java:266)
at org.apache.tomcat.util.threads.inlineexecutorservice.execute(inlineexecutorservice.java:75)
at java.util.concurrent.abstractexecutorservice.submit(abstractexecutorservice.java:134)
at org.apache.catalina.core.containerbase.startinternal(containerbase.java:902)
at org.apache.catalina.core.standardengine.startinternal(standardengine.java:262)
at org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:183)
at org.apache.catalina.core.standardservice.startinternal(standardservice.java:423)
at org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:183)
at org.apache.catalina.core.standardserver.startinternal(standardserver.java:928)
at org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:183)
at org.apache.catalina.startup.catalina.start(catalina.java:638)
at sun.reflect.nativemethodaccessorimpl.invoke0(native method)
at sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62)
at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)
at java.lang.reflect.method.invoke(method.java:498)
at org.apache.catalina.startup.bootstrap.start(bootstrap.java:350)
at org.apache.catalina.startup.bootstrap.main(bootstrap.java:492)
caused by: java.net.unknownhostexception: xxxxx: xxxxx: name or service not known
at java.net.inetaddress.getlocalhost(inetaddress.java:1506)
at org.quartz.simpl.simpleinstanceidgenerator.generateinstanceid(simpleinstanceidgenerator.java:34)
... 76 common frames omitted
caused by: java.net.unknownhostexception: xxxxx: name or service not known
at java.net.inet6addressimpl.lookupallhostaddr(native method)
at java.net.inetaddress$2.lookupallhostaddr(inetaddress.java:929)
at java.net.inetaddress.getaddressesfromnameservice(inetaddress.java:1324)
at java.net.inetaddress.getlocalhost(inetaddress.java:1501)
... 77 common frames omitted
解决方案
如异常消息里所示,couldn't get host name!, xxxxx: name or service not known,可以推断是xxxxx这个hostname无法解析,将/etc/hosts文件打开,确实没有解析这个域名,添加一行域名解析:127.0.0.1 xxxxx
保存
然后重启tomcat,就可以正常启动了
后来跟运维人员确认了,他们确实中间调整过服务器的信息,导致了这个 hostname解析异常。。
关于tomcat一些启动错误的解决
一、eclipse tomcat 启动超时
错误内容: server jboss v4.0 at localhost was unable to start within 50 seconds. if the server requires more time, try increasing the timeout in the server editor
解决办法:修改路径
进入eclipse的工作空间 .metadata.plugins\org.eclipse.wst.server.core目录,修改目录内文件server.xml
找到 start-timeout=”45” 并设高 start-timeout=”450”
二、eclipse无法加载tomcat
错误内容:删除tomcat后,重新导入tomcat,但无法加载tomcat
解决方案:
1.退出 eclipse
2.到[工程目录下]/.metadata/.plugins/org.eclipse.core.runtime
3.把org.eclipse.wst.server.core.prefs和org.eclipse.jst.server.tomcat.core.prefs这两个文件去掉
4.重启eclipse
三、tomcat运行没有生成class文件
错误内容: 项目编译没有生产class文件
解决方案:
1,选择: project->clean..->选第2个clean select project, 勾上start build immediatelly
2,如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可 以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.
步骤:选中项目——右键——properties——选中下面红色区域——选中里面的jar包——点remover
3,删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置myeclipse为保存时编译,然后在保存的时候就可以自动编译了,步骤:选中项目->点右键properties->java build path->source->…/web-inf/src的output folder不要默认,编辑让它指向../web-inf/classes
4,再就是最重要的要看工程下面是否缺少了work目录,由于cvs控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译,最开始的时候,我只找到了前面7个方法,但是他们都没有解决我的问题.无意中我打开了”problems”标签,发现里面说缺少work目录,手工加上,然后刷新项目就可以了..classpath这个xml文件要仔细看
四、tomcat启动 报 permgen space
错误内容: 内存溢出
解决方案1:
1,重启tomcat
2,先停止运行,双击tomcat,打开open launch configuration,然后 在arguments中的vm arguments的编辑中的上面添加- xms256m -xmx1024m -xx:permsize=64m -xx:maxpermsize=128m,在重启就好了。
解决方案2: 设置default vm arguments,打开myeclipse—>windows —>preferences—>java—installed jres
—>点击正在使用的jdk—>edit—>default vm arguments 输 入-xms64m -xmx256m
五、tomcat启动 报 address already in use: jvm_bind”
错误内容: 8005端口被占用
解决方案一(推荐),修改tomcat/conf/server.xml文件
打开server.xml
将<server port="8005" shutdown="shutdown">中8005改成不常用的端口号即可,比如9876
解决方案二,将占用8005的进程强行结束
(1) 在“运行”中输入cmd
(2)在启动的窗口中输入netstat -ano,就可以看到所有端口占用的情况,记下占用8005端口的程序的pid
(3)打开“任务管理器”,点击菜单栏的“查看”,再点击“选择列”,选上“pid(进程标识符)” 或者在cmd中输入tasklist命令,回车,查看
(4)在进程中找个相应的pid值,结束进程即可
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论