[错误]TOMCAT启动报错Socket bind failed等解决方法
Tomcat启动失败问题(指定的主资源集[D:javaapache-tomcat-9.0.。。。
Tomcat启动失败问题(指定的主资源集[D:javaapache-tomcat-9.0.。
警告: 部署描述符[D:\java\apache-tomcat-9.0.35\conf\Catalina\localhost\AppManageSystem.xml]中值为[/AppManageSystem]的路径属性已被忽略九⽉ 15, 2020 1:53:37 下午 org.apache.catalina.startup.HostConfig deployDescriptor警告: (:在主机appBase 中指定了docBase [D:\java\apache-tomcat-9.0.35\webapps\AppInfoSystem],将被忽略九⽉ 15, 2020 1:53:37 下午 org.apache.catalina.startup.HostConfig deployDescriptor严重: 部署描述符[D:\java\apache-tomcat-9.0.35\conf\Catalina\localhost\AppManageSystem.xml]时出错ng.IllegalStateException: 启动⼦级时出错at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631)at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1830)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.deployDescriptors(HostConfig.java:526)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:425)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)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:423)at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)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:909)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:421)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)at org.apache.catalina.startup.Catalina.start(Catalina.java:633)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at ng.reflect.Method.invoke(Method.java:498)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)Caused by: org.apache.catalina.LifecycleException: ⽆法启动组件[org.apache.catalina.webresources.StandardRoot@57a3e26a]at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)... 37 moreCaused by: ng.IllegalArgumentException: 指定的主资源集 [D:\java\apache-tomcat-9.0.35\webapps\AppManageSystem] ⽆效at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:751)at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:708)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)... 41 more九⽉ 15, 2020 1:53:37 下午 org.apache.catalina.startup.HostConfig deployDescriptor信息: 部署描述符[D:\java\apache-tomcat-9.0.35\conf\Catalina\localhost\AppManageSystem.xml]的部署已在[78]ms内完成九⽉ 15, 2020 1:53:37 下午 org.apache.catalina.startup.HostConfig deployDirectory信息: 把web 应⽤程序部署到⽬录 [D:\java\apache-tomcat-9.0.35\webapps\AppInfoSystem]解决:删除配置记录即可1.找到tomcat所在路径,删除webapps下对应的项⽬。
tomcat常见的错误与解决方案小结
tomcat常见的错误与解决⽅案⼩结⼀、tomcat启动时错误问题1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;解决:没有在tomcat的配置⽂件.bash_profile中设置环境变量JAVA_HOME,具体设置⽅法为:加⼊如下⼏⾏:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jarexport CLASSPATH问题2:Error occurred during initialization of VM Could not reserve enough space for object heap解决:在tomcat的bin⽬录下,catalina.sh⽂件的tomcat内存参数配置过⼤,超过机器可⽤内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"问题3:tomcat启动时报某个⽬录没有权限,启动失败,或者不能执⾏某些jsp页解决:tomcat需要tomcat⽤户具有⼀些⽬录和⽂件的相应权限, 所有⽬录应该具有读写执⾏(浏览)的权限,jsp,class⽂件应该最少具有读权限, ⼀些⽂件需要写权限,下⾯是已知的需要读写权限⽂件的列表:$CATALINA_HOME/logs下所有⽂件$CATALINA_HOME/work下所有⽂件$CATALINA_HOME/publish/main/count.txt⽂件$CATALINA_HOME/publish/chatroom/resource下的所有.xml⽂件所有上传图⽚⽬录都需要写权限。
socket异常解决方案
socket异常解决方案
《Socket异常解决方案》
在开发网络应用程序时,我们经常会遇到socket异常的问题。
socket异常可能会导致网络连接失败,数据传输中断,甚至导
致程序崩溃。
在面对这些问题时,我们需要及时解决并找出根本原因。
首先,我们需要了解造成socket异常的可能原因。
常见的原
因包括网络连接问题,服务器故障,数据包丢失等。
在了解了可能的原因后,就需要针对性地解决这些问题。
解决socket异常的方案可能包括以下几点:
1. 检查网络连接:确认网络连接是否正常,尝试其他网络环境,比如切换到4G网络或者使用VPN连接。
如果网络连接出现
问题,可能是导致socket异常的原因之一。
2. 重启服务器:如果是服务器端出现了问题,可以尝试重启服务器或者联系服务器管理员进行排查。
3. 检查数据包:数据包丢失可能会导致socket异常,对于这
种情况,我们可以使用数据包监控工具来检查数据传输情况,找出问题所在。
4. 异常处理:在程序中加入异常处理机制是很重要的,比如捕获socket异常并进行相应的处理,比如重新连接,重传数据
等。
5. 更新软件版本:有时socket异常可能是由于软件版本过低或者存在bug所致,及时更新软件版本可能解决这些问题。
总之,解决socket异常需要综合考虑网络环境、服务器端和客户端的问题,及时采取合理的措施来解决和避免出现异常情况。
希望上述的解决方案能帮助大家更好地解决socket异常的问题。
解决SpringBootwebSocket资源无法加载、tomcat启动报错的问题
解决SpringBootwebSocket资源⽆法加载、tomcat启动报错的问题⽬录问题描述:解决⽅法⼀:(常规解决、不推荐)解决⽅法⼆:(推荐)总结:问题描述:1. 项⽬集成WebSocket,且打包发布tomcat时出现websocket is already in CLOSING or CLOSE state这样的问题,建议参考“解决⽅法⼆”,但是“解决⽅法⼀”请要了解查看 ,因为解决⽅法⼆是在⼀的基础上进⾏更正2. 如果出现javax.websocket.server.ServerContainer not available这样的错误,请参考“解决⽅法⼀”中步骤3解决⽅法⼀:(常规解决、不推荐)步骤1:在BootApplication中修改:public static void main(String[] args) {SpringApplication springApplication = new SpringApplication(BootApplication.class);springApplication.addListeners(new ApplicationPidFileWriter());ConfigurableApplicationContext applicationContext = springApplication.run(args);WebSocketServer.setApplicationContext(applicationContext);注:这⾥的WebSocketServer是指你⾃定义的websocket接受消息的服务类步骤2:修改WebSocketServerprivate static ManageUserMapper manageUserMapper;public static void setApplicationContext(ConfigurableApplicationContext applicationContext) {WebSocketServer.manageUserMapper = applicationContext.getBean(ManageUserMapper.class);}步骤3: 修改pom.xml由于我们在开发过程中,如果按照以上步骤1、2进⾏修改,⼀般不会出现问题,但是如果我们打包发布tomcat,就会出现:javax.websocket.server.ServerContainer not available这样的错误,步骤3为常规解决⼀下问题⽅式<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 去除内嵌tomcat --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>需要去除web-starter的tomcat,因为如果不去除会导致冲突,如果出现这种问题,你还需要在websocketConfig中做如下修改:(websocket为⾃定义配置类)/*** 服务器节点** 如果使⽤独⽴的servlet容器,⽽不是直接使⽤springboot的内置容器,就不要注⼊ServerEndpointExporter,因为它将由容器⾃⼰提供和管理* @return*/@Bean@Profile("dev")public ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}在application.properties做如下配置##prod:⽣产环境 dev:开发环境(WINDOWS)spring.profiles.active=dev这⾥加⼊了@Profile("dev") 这个注解。
Tomcat部署项目时启动报错总结
Tomcat部署项目时启动报错总结第一篇:Tomcat部署项目时启动报错总结Tomcat部署项目时启动报错总结1、虚拟机报错端口被占用tomcat的默认端口是8080(或者其他自己设置的),可能已经被其他占用。
解决方法:在tomcat安装路径下conf文件夹中的server.xml中把断口号改掉!如果一台机器上使用多个tomcat,则改掉所有相关的端口避免重复了,包括想如下在server.xml中找到如下地方改掉port 的值λλ的tomcat是不是有重复的port)(改完后看看和本机上正在用2、tomcat的启动窗口一闪而过Tomcat启动的dos窗口一闪而过,如何看出错信息?在DOS窗口运行STARTUP.BAT文件,另外,吧startup.bat文件最后的call “%EXECUTABLE%” start %CMD_LINE_ARGS% 改成:call “%EXECUTABLE%” run %CMD_LINE_ARGS%分析原因1: jdk的环境变量没有配置好解决方法:检查jdk环境变量的配置是否正确,或者重新配置jdk 的系统环境变量JDK环境变量配置的步骤如下:1.我的电脑-->属性-->高级-->环境变量.2.配置用户变量:a.新建 JAVA_HOMEC:Program FilesJavaj2sdk1.5.0(JDK的安装路径)b.新建 PATH(注意:把java的配置放在path的最前面)%JAVA_HOME%bin;%JAVA_HOME%jrebinc.新建 CLASSPATH.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar3.测试环境变量配置是否成功:开始-->运行--〉CMD键盘敲入: JAVAC JAVA出现相应的命令,而不是出错信息,即表示配置成功!环境变量配置的理解:1.PATH环境变量。
作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
Tomcat服务无法启动的问题的解决方法
Tomcat服务⽆法启动的问题的解决⽅法去年下半年公司就决定投⼊⼈⼒物⼒"跟风"做⼤数据⽅向的研究并应⽤到后续项⽬中,于是乎,我们也得熟悉下Java才⾏了。
先弄个JavaEE的开发环境再说吧。
装JDK、JRE,其实JDK下⾯已经有JRE了,如果在服务器上的话,只需装JRE;然后配置环境变量:新建:JAVA_HOME:D:\Java\jdk1.7.0_51新建:CLASS_PATH:.;%JAVA_HOME%\lib编辑:PATH:在最前⾯加上 %JAVA_HOME%\bin; 接着装Tomcat,startup.bat、shutdown.bat都正常,然后想把压缩版的Tomcat的启动和关闭做成Windows服务来处理,执⾏service.bat install提⽰服务创建成功,但是启动服务却失败了,系统⽇志提⽰:我之前台式机上的Windows 2003系统没啥问题,怎么到了现在这Win7系统的⼩本上就这样了呢?先分析下,既然可以正常调⽤service.bat,也就是环境变量的配置是没有问题的,对⽐下2个操作系统,似乎⽬前最有可能的就是安装时候的权限问题。
先卸载掉已经安装过的服务service.bat remove,然后"以管理员⾝份运⾏" cmd.exe,切换到service.bat所在的⽬录执⾏service.bat install重新安装Tomcat服务。
HoHo,这下可以正常启动和关闭了。
因为是开发环境,所以我们可以配置⼀个超级⽤户admin ,使其能够通过"http://localhost:8080/"来管理Tomcat。
进⼊Tomcat根⽬录下的conf⽂件夹,打开"tomcat-users.xml"进⾏编辑:复制代码代码如下:<tomcat-users><user username="admin" password="admin" roles="manager-gui,admin-gui"/></tomcat-users>重启Tomcat后,就可以使⽤admin来管理Tomcat了。
tomcat常见错误与解决方法
上海纽斯达科技tomcat常见错误与解决方法上海纽斯达科技有限公司2014-10-25文档状态目的:在tomcat 服务器出现故障时,能快速定位并解决相关错误。
保密:本文档仅供内部使用,请勿外传概述:tomcat 常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit文件状态:【 】草稿【 】修改稿 【√】正式发布 文档编号 Nsdkj-779 保 密 等 级 限制 作 者 刘恒亮 最后完成日期 2014-12-25 审 核 人最后审核日期 2014-12-25 批 准 人最后批准日期 2014-12-25注释:Q代表问题,A代表错误解决办法Q:在以tomcat用户启动tomcat时提示:The JAVA_HOME environment variable is not defined This environment variable is needed to run this programA:没有在在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入如下几行:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/li b/dt.jarexport CLASSPATHQ: 在以tomcat用户登录linux系统后,提示:-bash: /home/tomcat/j2sdk1.4.2_08: is a directory-bash:/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.ja r:没有那个文件或目录。
tomcat启动失败--解决方法
怎么处理Server Tomcat v7.0 Server at localhost failed to start.处理方式有以下几种:1、端口被占用。
2、启动时间不够。
3、eclipse引发的问题。
一.端口被占用这种情况一般都是你的tomcat端口(默认端口8080)被占用了。
你可以通过浏览器访问(http://127.0.0.1:8080)。
若确认是因为端口被占用引起的问题后,我们就来处理该问题了。
一种方法是将被占用的端口的服务停掉,使其不备占用。
二种方法是修改tomcat的端口了,在Eclipse中双击tomcat,修改其端口号。
具体如下图所示:双击它然后修改它(我这里已经将它修改为了8089了)2.启动时间不够。
这是由于服务启动的时间相对较长,而设置的timeout时间太短而引起的问题。
你只需要将timeout 时间设置长一些就可以正常启动了。
(只需要双击Timeouts就出现如上图界面了,我将原先的45s 改为了50s)我的Exlipse就是因为这个原因。
3. eclipse引发的问题。
如果不属于前面的两种情况,那么可能是eclipse 在管理时出现的问题。
对于这种情况,我们一般通过以下四中方式来解决:一种:清理tomcat二种:移除应用并清理tomcat三种:删除server 并重建(Delete:删除;New 可以重建)四种:就是重启电脑。
总之,要逐项排查,对于这个问题:Server Tomcat v7.0 Server at localhost failed to start. 以上方法希望对你帮助!!!!!。
由于应用程序配置不正确 应用程序未能启动
由于应用程序配置不正确应用程序未能启动引言在使用计算机上的应用程序时,偶尔会遇到应用程序配置不正确的问题,导致应用程序无法启动。
这种问题可能由多种原因引起,如错误的配置文件、损坏的程序文件等。
本文将讨论这些可能的原因,并提供相应的解决方案,帮助用户解决应用程序启动问题。
1.检查配置文件配置文件是应用程序启动时读取的重要文件,其中包含了应用程序所需的各种参数和设置。
如果配置文件中存在错误或缺失,则可能导致应用程序无法正常启动。
解决方案:首先,需要确认配置文件是否存在,并且位置正确。
然后,可以尝试打开配置文件,检查其中的参数设置是否正确。
如果发现错误,可以手动修改配置文件中的参数,确保其与应用程序的要求一致。
2.修复损坏的程序文件在一些情况下,应用程序的某些关键文件可能会损坏,导致应用程序无法启动。
解决方案:可以尝试重新安装应用程序,以替换损坏的文件。
首先,需要卸载当前安装的应用程序。
然后,从官方网站下载最新的安装程序,并按照提示进行安装。
新安装的应用程序应该包含完整的和正确的程序文件,从而能够正常启动。
3.检查依赖项应用程序可能依赖于其他组件或库文件。
如果缺少必要的依赖项,应用程序可能无法启动。
解决方案:可以尝试安装或更新缺少的依赖项。
首先,需要确定应用程序所需的依赖项及其版本要求。
然后,可以从官方网站或其他可靠来源获取所需的依赖项,并按照其提供的安装指南进行安装。
安装完依赖项后,可以尝试重新启动应用程序。
4.检查系统环境变量应用程序在启动时可能会读取系统环境变量。
如果环境变量设置不正确,应用程序可能无法找到所需的资源或执行所需的操作。
解决方案:可以检查系统环境变量,并确保其设置正确。
在Windows系统中,可以通过控制面板 -> 系统 -> 高级系统设置 -> 环境变量来访问系统环境变量设置。
在Linux系统中,可以编辑/etc/environment文件进行设置。
在设置环境变量时,务必确保变量名和值的正确性,以避免应用程序启动问题。
Tomcat启动失败的解决方法
Tomcat启动失败的解决方法
1.JDK版本和Tomcat版本不匹配,通常原因是JDK版本过低
例如Tomcat5.5搭配JDK6.0
此种情况会出现启动Tomcat的时候,加载信息在屏幕上停留几秒就消失,Tomcat没有任何反应。
解决方法:
(1)将JDK目录下的bin文件夹中的msvcr71.dll 复制到tomcat的BIN文件夹中。
(2)系统缺少msvcr71.dll文件!
从别的电脑上cope其添加到 <windows>/system32 目录下即可!
2.JDK环境变量设置错误
常见的,例如JAVA_HOME没设置,或者设置错误, JAVA_HOME后不能含有; 否则会影响到后面classpath和path的设置
3. 8080端口被占用
Tomcat所使用的默认为8080端口,如果它被别的服务程序占用,例如oracle等,则需要另外指派端口给Tomcat
方法:打开Server.xml,找到
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
把其中port后的8080改为别的端口,例如8088,9090,
然后重新启动Tomcat,启动成功即可。
(4)
终止进程:Javax.exe。
tomcat启动失败的常见原因
tomcat启动失败的常见原因根据不同情况,笔者碰到过的有以下⼏种情况:1. 运⾏tomcat的启动⽂件startup.bat,弹出⿊窗⼝,直接闪退。
这种情况⼀般都是没有配置JAVA_HOME导致的,配置jdk如果没有使⽤JAVA_HOME的⽅式配置环境变量,就会出这种问题2. 启动后,停留⼀段时间,打印⼀些⽇志,然后窗⼝关闭。
这种情况⼀般是端⼝号冲突了。
由于端⼝号只会⽀持⼀个程序运⾏,如果tomcat的默认端⼝号被其他程序占⽤,就会导致冲突。
解决这种问题的⼿段分为两种,第⼀,关闭占⽤默认端⼝号的程序(不太建议),第⼆,修改tomcat使⽤的默认端⼝号。
关闭占⽤默认端⼝号的程序如果选择结束掉占⽤了默认端⼝号的程序,如何查看是哪个程序占⽤了端⼝号呢? 在cmd命令输⼊netstat -aov本地地址最右侧就是已经被使⽤的端⼝号,找到默认端⼝号8080,记下最右侧的数字(PID的值)接着打开任务管理器,找到和PID值匹配的进程,将其关闭即可(默认情况下,任务管理器不会显⽰PID,需要⼿动开启PID显⽰)修改tomcat使⽤的默认端⼝号在TomCat⽂件⽬录下找到conf⽂件下的server.xml⽂件修改上图的8080即可。
3. 运⾏tomcat后,tomcat很快就启动完成了,但是⽇志打印了⼀⼤堆严重。
这种情况,似乎是因为tomcat的权限不⾜导致的,需要提升tomcat的权限,只需要修改tomcat中的config⽂件夹的权限,将权限改成完全控制,如下图(要注意,⼀定要修改电脑当前登录⽤户下的权限,否则没⽤,在下图中的组或⽤户名中找到当前登录的⽤户。
)发⼀下,这种情况报的错误信息。
信息: Loaded APR based Apache Tomcat Native library 1.1.14.2009-5-25 7:55:48 org.apache.catalina.core.AprLifecycleListener init信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].2009-5-25 7:55:50 org.apache.coyote.http11.Http11AprProtocol init信息: Initializing Coyote HTTP/1.1 on http-80802009-5-25 7:55:50 org.apache.coyote.ajp.AjpAprProtocol init信息: Initializing Coyote AJP/1.3 on ajp-80092009-5-25 7:55:50 org.apache.catalina.startup.Catalina load信息: Initialization processed in 3594 ms2009-5-25 7:55:50 org.apache.naming.NamingContext lookup警告: Unexpected exception resolving referencejava.io.IOException: Cannot rename original file to C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/tomcat-users.xml.old at ers.MemoryUserDatabase.save(MemoryUserDatabase.java:582)at ers.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:104)at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)at org.apache.naming.NamingContext.lookup(NamingContext.java:793)at org.apache.naming.NamingContext.lookup(NamingContext.java:140)at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113)at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137)at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109)at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.core.StandardServer.start(StandardServer.java:703)at org.apache.catalina.startup.Catalina.start(Catalina.java:578)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2009-5-25 7:55:50 org.apache.catalina.mbeans.GlobalResourcesLifecycleListener createMBeans严重: Exception processing Global JNDI Resourcesjavax.naming.NamingException: Cannot rename original file to C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/tomcat-users.xml.oldat org.apache.naming.NamingContext.lookup(NamingContext.java:805)at org.apache.naming.NamingContext.lookup(NamingContext.java:140)at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113)at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137)at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109)at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)at org.apache.catalina.core.StandardServer.start(StandardServer.java:703)at org.apache.catalina.startup.Catalina.start(Catalina.java:578)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2009-5-25 7:55:50 org.apache.catalina.core.StandardService start信息: Starting service Catalina2009-5-25 7:55:50 org.apache.catalina.core.StandardEngine start信息: Starting Servlet Engine: Apache Tomcat/6.0.182009-5-25 7:55:50 org.apache.naming.NamingContext lookup警告: Unexpected exception resolving referencejava.io.IOException: Cannot rename original file to C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/tomcat-users.xml.old at ers.MemoryUserDatabase.save(MemoryUserDatabase.java:582)at ers.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:104)at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)at org.apache.naming.NamingContext.lookup(NamingContext.java:793)at org.apache.naming.NamingContext.lookup(NamingContext.java:153)at erDatabaseRealm.start(UserDatabaseRealm.java:253)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:516)at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:578)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2009-5-25 7:55:50 erDatabaseRealm start严重: Exception looking up UserDatabase under key UserDatabasejavax.naming.NamingException: Cannot rename original file to C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/tomcat-users.xml.oldat org.apache.naming.NamingContext.lookup(NamingContext.java:805)at org.apache.naming.NamingContext.lookup(NamingContext.java:153)at erDatabaseRealm.start(UserDatabaseRealm.java:253)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:516)at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:578)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2009-5-25 7:55:50 org.apache.catalina.startup.Catalina start严重: Catalina.start:LifecycleException: No UserDatabase component found under key UserDatabaseat erDatabaseRealm.start(UserDatabaseRealm.java:261)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)at org.apache.catalina.core.StandardService.start(StandardService.java:516)at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:578)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2009-5-25 7:55:50 org.apache.catalina.startup.Catalina start信息: Server startup in 299 ms。
项目启动tomcat失败的几种可能原因和解决方法(小结)
项⽬启动tomcat失败的⼏种可能原因和解决⽅法(⼩结)⽬录1、java配置路径有问题2、项⽬未添加tomcat驱动3、项⽬中的web.xml中配置的servlet的名称写错,tomcat⽆法识别4、端⼝被占⽤1、java配置路径有问题请配置好jdk路径,具体参考java路径的配置吧。
2、项⽬未添加tomcat驱动(⼀般提⽰The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path属于这⼀类)解决⽅法:保证已经装了tomcat的情况下,eclipse中选择对应项⽬右键build path ->Configure build path -> Java build path->选择Libraries ->点击右⽅Add Library... ->Server Runtime ->选择⾃⼰的tomcat服务器->Finish3、项⽬中的web.xml中配置的servlet的名称写错,tomcat⽆法识别(⼀般控制台提⽰java.util.concurrent.ExecutionException属于这种问题)解决⽅法:检查⾃⼰配置的servlet名称和路径是否正确。
4、端⼝被占⽤⼀般由于上⼀次⾮正常关闭tomcat或eclipse导致,( Port 8080 .............. is already in use)解决⽅法:①修改端⼝号(当然不建议这么做) Tomcat根⽬录/conf/Server.xml中修改,这⾥就不提了吧.....②关闭被占⽤的端⼝进程:到dos窗⼝(计算机开始⾥的查找中输⼊cmd)中输⼊netstat -ano|findstr 8080(8080是被占⽤的端⼝号,哪个被占⽤输⼊哪个)回车后可以看到有正在使⽤的进程再输⼊taskkill /pid 8080 /f (这⾥的8080是正在使⽤的进程信息中最后⼀个数字编号)回车后会显⽰已结束进程,然后重新启动tomcat即可。
Tomcat启动失败的问题排查与解决
Tomcat启动失败的问题排查与解决前⾔最近在某应⽤更新代码后部分机器发布失败,发布失败的机器上Tomcat⼀直没有启动成功,⽇志卡在Deploying web application,重启数次之后仍然是⼀样的情况。
所以进⾏排查问题,下⾯记录了所有的排查过程,需要的朋友们可以参考学习。
排查过程1. Tomcat启动线程卡住下⽂中Tomcat启动线程代指线程名为localhost-startStop-$id的线程。
使⽤jstack打印出Tomcat的线程堆栈:jstack `jps |grep Bootstrap |awk '{print $1}'` > jstack.log从jstack.log⾥⾯可以看到线程localhost-startStop-1处于WAITING状态,堆栈如下:"localhost-startStop-1" #26 daemon prio=5 os_prio=0 tid=0x00007fe6c8002000 nid=0x3dc1 waiting on condition [0x00007fe719c1e000]ng.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000007147be150> (a work.client.FutureResult)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)at java.util.concurrent.FutureTask.get(FutureTask.java:191)at xxx.HeartBeatContainer.invoke(HeartBeatContainer.java:183)at xxx.HeartBeatContainer.registry(HeartBeatContainer.java:130)对应的代码如下:final ResponseFuture<XxxMessage<Result>> future = responseFutureFactory.newResponseFuture(request);channel.writeAndFlush(request);XxxMessage<Result> response = future.get();线程⼀直卡在future.get()没有返回。
tomcat启动不了一闪而过怎么办?tomcat一闪而过无法启动现象的解决方法
tomcat启动不了⼀闪⽽过怎么办?tomcat⼀闪⽽过⽆法启动现象的解决⽅法 tomcat启动⼀闪⽽过怎么办成为了许多刚接触tomcat开发环境⼯作者的⼀个⼤问题,许多⽤户朋友都不知道是因为什么问题导致出现这种情况,马上点击查看tomcat⼀闪⽽过⽆法启动解决⽅法来解决您现在出现的问题吧。
Apache Tomcat 8.5.31 32位/64位官⽅免费版类型:服务器其它⼤⼩:9.41MB语⾔:简体中⽂时间:2018-05-07查看详情 - 1.⾸先要搞明⽩启动不起来的原因。
⽅法是在命令⾏下,运⾏startup.bat⽂件,这样程序就不会⼀闪⽽过,⽽会将启动不起来的原因打印到窗⼝上。
在命令⾏下启动tomcat的⽅法读者应该都很清楚,⼤体就是:cmd启动命令⾏窗⼝->通过cd命令到tomcat的bin⽬录下->运⾏startup.bat。
- 2.通过命令⾏的提⽰看到,这是因为电脑上没有配置JAVA_HOME或者JRE_HOME导致的。
那么下⾯添加上JAVA_HOME和JRE_HOME。
具体步骤为计算机->属性->环境变量,然后添加系统变量; - 3.添加完JAVA_HOME 和JRE_HOME 两个系统变量之后,在将这两个变量放到path 系统变量中,⽅法是,在path 变量值的后⾯直接追加 【;%JAVA_HOME%;%JRE_HOME%】注意!分号是环境变量的分割符号,不可少。
- 4.设置好变量之后,关掉之前的命令⾏窗⼝,重启⼀个新的命令⾏窗⼝,再次运⾏startup.bat命令,问题解决。
以上就是⼩编为⼤家带来的tomcat⼀闪⽽过⽆法启动现象的解决⽅法了,希望可以帮助到⼤家,⼤家如果还有疑问的话,可以在下⽅的评论框内给我们留⾔哦。
我们会尽⾃⼰所能的为⼤家解答。
谢谢⼤家⼀如既往的⽀持,也请⼤家继续关注的后续教程和软件。
linux网络编程socketbindfailed问题解决
linux⽹络编程socketbindfailed问题解决具体介绍例如以下:bind 普遍遭遇的问题是试图绑定⼀个已经在使⽤的port。
该陷阱是或许没有活动的套接字存在,但仍然禁⽌绑定port(bind 返回EADDRINUSE)。
它由 TCP 套接字状态 TIME_WAIT 引起。
该状态在套接字关闭后约保留 2 到 4 分钟。
在 TIME_WAIT 状态退出之后,套接字被删除,该地址才⼲被⼜⼀次绑定⽽不出问题。
等待 TIME_WAIT 结束可能是令⼈恼⽕的⼀件事。
特别是假设您正在开发⼀个套接字server。
就须要停⽌server来做⼀些修改,然后重新启动。
幸运的是,有⽅法能够避开 TIME_WAIT 状态。
能够给套接字应⽤ SO_REUSEADDR 套接字选项,以便port能够⽴即重⽤。
考虑清单 3 的样例。
在绑定地址之前。
我以 SO_REUSEADDR 选项调⽤ setsockopt。
为了同意地址重⽤,我设置整型參数(on)为 1 (不然,能够设为 0 来禁⽌地址重⽤)。
清单 3.使⽤ SO_REUSEADDR 套接字选项避免地址使⽤错误int sock, ret, on;struct sockaddr_in servaddr;/* Create a new stream (TCP) socket */sock = socket( AF_INET, SOCK_STREAM, 0 ):/* Enable address reuse */on = 1;ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) );/* Allow connections to port 8080 from any available interface */memset( &servaddr, 0, sizeof(servaddr) );servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl( INADDR_ANY );servaddr.sin_port = htons( 45000 );/* Bind to the address (interface/port) */ret = bind( sock, (struct sockaddr *)&servaddr, sizeof(servaddr) );在应⽤了 SO_REUSEADDR 选项之后,bind API 函数将同意地址的马上重⽤。
tomcat下服务启动失败原因
tomcat下服务启动失败原因Tomcat启动成功,输⼊⽹址后可以显⽰⼩黄猫界⾯,但是在Tomcat下的服务却启动不成功,显⽰404(以Jenkins为例,运⽤多种⽅式查看原因)注:1、单启动Tomcat服务是可以启动成功的。
若满⾜以上2点⼦服务依旧不能启动成功,可使⽤如下⼏种⽅式检查1、查看webapps下的war包是否正常解压,所没有解压成功,可⼿动解压在webapps下,然后重启Tomcat即可2、查看Tomcat所⽤端⼝是否被占⽤,若是被占⽤可修改端⼝号(若是启动后背Java.exe所占⽤属于正常情况,因为启动后Tomcat会⼀直使⽤Java环境)修改端⼝⽅式:2)若是被占⽤,则在Tomcat的根(安装)⽬录下,找到conf⽂件夹,进⼊conf⽂件夹,在⾥⾯找到Server.xml⽂件3)打开Server.xml⽂件,在⽂件中找到如下⽂本并进⾏修改并保存(共需要修改3处位置),保存后重启Tomcat即可3、若是本地配置多个版本的Java环境也可影响到服务的启动(不同版本的Java环境可启动不同版本的Tomcat)1)查看JVM版本在Tomcat/bin下,双击version.bat脚本可查看详细信息,但是由于默认脚本不显⽰运⾏过程,故需要修改下DOS脚本1.打开version.bat,将⾸⾏的@echo off修改成echo on,表⽰在控制台显⽰运⾏过程2.在脚本末尾添加pause函数,表⽰脚本运⾏完之后不⾃动关闭cmd,可显⽰在桌⾯上3.修改完之后保存脚本,再次双击version.bat脚本及可查看详细信息,其中JVM Version表⽰Tomcat服务使⽤的JVM版本2)如果JDK不是想要的版本,则可在Tomcat/bin下找到setclasspath.bat脚本,⼿动修改其中的JRE路径(需要修改两处)打开setclasspath.bat脚本,找到set "JRE_HOME=%JAVA_HOME%",把%JAVA_HOME%替换成本机需要使⽤的其他安装的jre路径,如set "JRE_HOME=D:\Program Files\Java\jre1.8.0_181",然后重启即可(所使⽤的jre需配置环境变量)4、若以上三种⽅式皆没有问题,则根据Tomcat打印出的log查看具体原因1)可在命令⾏输⼊java -jar jenkins.war查看报错原因(具体报错原因可⾃⾏报错)2)查看Tomcat/logs下的catalina.log,主要是记录tomcat启动时候的信息,在⾥⾯可以看到启动的JVM参数以及操作系统等⽇志信息问题显⽰为Jenkins war包的问题。
socket 由于目标机器积极拒绝,无法连接的解决办法
{
if (!IpEntry.AddressList[i].IsIPv6LinkLocal)
{
ip= IpEntry.AddressList[i].ToString();
}
}
IPEndPoint ipend = new IPEndPoint(IPAddress.Parse(ip), 8000);
Socket sc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sc.Bind(ipend);
Socket acc;
while (true)
{ sc.Listen(1);
acc= sc.Accept();
string returnval = "开始升级";
byte[] returnBy = Encoding.GetEncoding("gb2312").GetBytes(returnval);
acc.Send(returnBy, returnBy.Length, 0);
}
acc.Close();
sc.Close();
}
public string sendMessage()
{
IPEndPoint ipend = new IPEndPoint(IPAddress.Parse("192.168.XXX.XXX"),8000);
Socket sc = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
解决IDEA配置tomcat启动报错问题
解决IDEA配置tomcat启动报错问题在配置servlet不同路径时遇上以下两个错误:ng.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;ng.ClassNotFoundException: org.apache.jsp.index_jsp;对于第⼀个问题,我上⽹查阅了很多资料后发现,可能是tomcat版本冲突导致,catalina log如下:19-Feb-2018 08:26:44.175 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.2819-Feb-2018 08:26:44.175 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Feb 6 2018 23:10:25 UTC19-Feb-2018 08:26:44.175 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.28.0 19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 7 19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.119-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: x8619-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:C:\Program Files\Java\jdk1.8.0_141\jre19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_141-b1519-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:F:\apache-tomcat-8.5.2819-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:F:\apache-tomcat-8.5.2819-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=F:\apache-tomcat-8.5.28\conf\logging.properties19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=204819-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=F:\apache-tomcat-8.5.2819-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=F:\apache-tomcat-8.5.2819-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=F:\apache-tomcat-8.5.28\temp19-Feb-2018 08:26:44.191 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.16] using APR version [1.6.3].19-Feb-2018 08:26:44.206 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].19-Feb-2018 08:26:44.206 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]19-Feb-2018 08:26:44.830 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2m 2 Nov 2017]19-Feb-2018 08:26:45.080 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 19-Feb-2018 08:26:45.517 信息 [main] .NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read19-Feb-2018 08:26:45.581 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 19-Feb-2018 08:26:45.597 信息 [main] .NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read19-Feb-2018 08:26:45.597 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2422 ms19-Feb-2018 08:26:45.643 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]19-Feb-2018 08:26:45.643 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.2819-Feb-2018 08:26:45.675 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployingweb application directory [F:\apache-tomcat-8.5.28\webapps\docs]19-Feb-2018 08:26:46.423 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [F:\apache-tomcat-8.5.28\webapps\docs] has finished in [748] ms19-Feb-2018 08:26:46.423 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [F:\apache-tomcat-8.5.28\webapps\examples]19-Feb-2018 08:26:47.059 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:org.apache.catalina.LifecycleException: Failed to start component[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1141)at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at ng.Thread.run(Thread.java:748)Caused by: org.apache.catalina.LifecycleException: Failed to start component[Pipeline[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5125)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 10 moreCaused by: org.apache.catalina.LifecycleException: Failed to start component[org.apache.catalina.authenticator.FormAuthenticator[/examples]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:182)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 12 moreCaused by: ng.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1186)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 14 more19-Feb-2018 08:26:47.075 严重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [F:\apache-tomcat-8.5.28\webapps\examples]ng.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]]at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:756)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1141)at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at ng.Thread.run(Thread.java:748)我先试着删除其他Tomcat版本,重新配置tomcat环境变量并重新部署Tomcat。
Socket网络编程常见异常
Socket网络编程常见异常概述(1)Socket 类中有很多方法在声明时使用throws 抛出了一些异常,这些异常都是IOException 的子类。
(2)在Socket 类的方法中抛出最多的就是SocketException,其余还有七个异常可供Socket 类的方法抛出。
Java编程语言百科异常概述(1)public class IOException extends Exception这个异常是所有在Socket 类的方法中抛出的异常的父类。
(2)public class SocketException extends IOException这个异常在Socket 类的方法中使用得最频繁。
(3)public class ConnectException extends SocketExceptionConnectException 异常通常发生在由于服务器忙而未响应或是服务器相应的监听端口未打开。
(4)public class BindException extends SocketException这个异常在多个Socket 或ServerSocket 对象绑定在同一个端口,而且未打开SO_REUSEADDR选项时发生。
(5)public class NoRouteToHostException extends SocketException这个异常在遇到防火墙或是路由无法找到主机的情况下发生。
(6)public class UnknownHostException extends IOException这个异常在域名不正确时被抛出。
(7)public class ProtocolException extends IOException这个异常并不经常被抛出。
由于不明的原因,TCP/IP 的数据包被破坏了,这时将抛出ProtocolException 异常。
(8)public class SocketTimeoutException extends InterruptedIOException如果在连接超时和读取数据超时时间过后,服务器仍然未响应,connect 或read 方法抛SocketTimeoutException 异常。
Tomcat5windows服务不能启动的终极解决方法
本人多次碰到这个问题,在网上搜索很久,一直没有找到真正的解决方法。
今天下午一次偶然的机会发现了问题所在,根据问题,提出以下解决方案。
问题所在:现在很多人都在使用jdk 的压缩版,使得tomcat 服务不能正确设置javaVM,导致tomcat服务不能正常配置和启动。
如果你是安装版jdk也出现启动问题,请参照以下方法解决。
假设jdk 安装目录为d:\j2sdktomcat5 安装目录为D:\Program Files\Apache Software Foundation\Tomcat5.01.配置环境变量:JAVA_HOME = d:\j2sdkCLASSPATH= %JAVA_HOME%\bin;.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_H OME%\lib\tools.jarCATALINA_HOME = D:\Program Files\Apache Software Foundation\Tomcat 5.02.配置Tomcat 服务这里有两种情况,一是tomcat5 为安装版,二是解压版,针对这两种情况分别解决。
1)安装版tomcat5在安装时选择安装tomcat 服务,如图安装完成后,打开注册表regedit.exe,找到HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat ServiceManager'Tomcat5\Parameters,你可以看到里面有很多参数值,主要是修改Java 项的值为d:\j2sdk\jre\bin\server\jvm.dll,修改正确后,你就可以通过开始->程序->A pache Tomcat 5.0->start tomcat启动服务了。
若没有若没有此项,可以依照以下方法设置参数。
2)解压版tomcat5这时你要先配置服务所用的参数,启动命令是tomcat5 的bin 目录下的tomcatw.exe(后面附上tomcatw.exe 命令参数)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[错误]TOMCAT启动报错Socket bind failed等解决方法
应该是你的要监听的端口被占用了。
在命令行(cmd)下运行netstat -anb 看看启动的时候报错内容严重: Error starting ng.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??at .AprEndpoint.init(AprEndpoint.java:6 12)at
.AprEndpoint.start(AprEndpoint.java: 717)at
org.apache.coyote.http11.Http11AprProtocol.start(Http11AprPro tocol.java:151)at
org.apache.catalina.connector.Connector.start(Connector.java:11 32)at
org.apache.catalina.core.StandardService.start(StandardService.j ava:531)at
org.apache.catalina.core.StandardServer.start(StandardServer.jav a:710)at
org.apache.catalina.startup.Catalina.start(Catalina.java:566)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA
ccessorImpl.java:39)at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegating MethodAccessorImpl.java:25)at
ng.reflect.Method.invoke(Method.java:597)at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2 007-10-23 0:00:46 org.apache.catalina.startup.Catalina start严重: Catalina.start: LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: ng.Exception: Socket bind failed:
[730048] ?????????×???(Э?é/???????/???)????í??at
org.apache.catalina.connector.Connector.start(Connector.java:11 39)at
org.apache.catalina.core.StandardService.start(StandardService.j ava:531)at
org.apache.catalina.core.StandardServer.start(StandardServer.jav a:710)at
org.apache.catalina.startup.Catalina.start(Catalina.java:566)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA ccessorImpl.java:39)at
MethodAccessorImpl.java:25)at
ng.reflect.Method.invoke(Method.java:597)at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2 007-10-23 0:00:46 org.apache.catalina.startup.Catalina start信息: Server startup in 42750 ms2007-10-23 0:00:46
org.apache.catalina.core.StandardServer await严重: StandardServer.await: create[8005]: .BindException: Address already in use: JVM_Bindat
.PlainSocketImpl.socketBind(Native Method)at
.PlainSocketImpl.bind(PlainSocketImpl.java:359)at .ServerSocket.bind(ServerSocket.java:319)at
.ServerSocket.<init>(ServerSocket.java:185)at org.apache.catalina.core.StandardServer.await(StandardServer.ja va:373)at
org.apache.catalina.startup.Catalina.await(Catalina.java:630)at org.apache.catalina.startup.Catalina.start(Catalina.java:590)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA ccessorImpl.java:39)at
MethodAccessorImpl.java:25)at
ng.reflect.Method.invoke(Method.java:597)at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)问题分析:肯定是本机的端口被占用了导致启动失败解决方法:打开tomcat目录下conf目录下的server.xml文件修改红色的端口值<Server port="8005"
shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> <Connector port="8081" protocol="AJP/1.3" redirectPort="8443" /> 如可以改成
<Server port="8885" shutdown="SHUTDOWN">
<Connector port="8886" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" /> <Connector port="8887" protocol="AJP/1.3" redirectPort="8443" /> 访问tomcat的时候用localhost:8886访问即可。