【问题标题】:Tomcat8 as a Windows service - listen on network socketTomcat8 作为 Windows 服务 - 侦听网络套接字
【发布时间】:2014-03-16 20:53:32
【问题描述】:

如果从控制台(通过startup.bat)启动,如果作为Windows服务启动,Tomcat8绑定到Windows网络套接字的方式有什么不同吗?如果 Tomcat 作为 Windows 服务启动,我将无法连接到应用程序 Web。如果从控制台启动,请查看 netstat:

C:\Program Files\Apache Software Foundation\apache-tomcat-8.0.0-RC10\bin>netstat -abnop tcp | grep -i -B2 8089 [java.exe]**

TCP 0.0.0.0:8089 0.0.0.0:0 监听 6016

如果作为服务启动,请查看 netstat(注意监听进程的不同名称):

C:\Program Files\Apache Software Foundation\apache-tomcat-8.0.0-RC10\bin>netstat -abnop tcp | grep -i -B2 8089 [tomcat8.exe]**

TCP 0.0.0.0:8089 0.0.0.0:0 监听 2856

Windows 服务由文档创建:“service.bat Install”。 服务的“镜像路径”为:“c:\Program Files\Apache Software Foundation\apache-tomcat-8.0.0-RC10\bin\tomcat8.exe” //RS//Tomcat8

我做错了什么?

【问题讨论】:

    标签: windows tomcat service netstat


    【解决方案1】:

    你应该做的第一件事: 检查您的 Windows 防火墙 :)

    当您说“侦听进程的不同名称”时,您是在谈论 PID 吗?您是否尝试使用“ProcessExplorer”(http://technet.microsoft.com/en-us/sysinternals/bb896653)来检查启动 Tomcat 实例时创建的 Java 进程之间的差异?

    当您将鼠标悬停在 java 进程上时,您可以看到为该 JVM 实例分配的 JVM 参数,此外,当您右键单击 java.exe 进程时,您可以检查其属性,在“TCP/IP”选项卡上您可以检查您的 Tomcat 是否正在侦听正确的端口。尝试使用这两种方法启动 Tomcat,并使用 ProcessExplorer 仔细查看,这应该可以帮助您识别任何错误配置。

    【讨论】:

    • 不,我说的是“进程名称”,有些编辑我的帖子并重新格式化命令:-/
    • C:\Program Files\Apache Software Foundation\apache-tomcat-8.0.0-RC10\bin>netstat -abnop tcp | grep -i -B2 8089 [java.exe] TCP 0.0.0.0:8089 0.0.0.0:0 LISTENING 6016
    • 呃,我不知道如何使用这个 UI 来更正格式。我的命令以数字 8089 结尾,其余(包括 'java' 或 'tomcat' 字符串是 netstat 输出。
    • 是的,进程名反映的是windows服务名,应该没问题。我了解您正在尝试检查命令行和 Windows 服务 Tomcat 实例之间的差异,因为使用后者,您无法连接到您的 Web 应用程序,对吗?
    • 好吧,假设您将默认端口从 8080 更改为 8089,您可以telnet localhost 8089 吗?我仍然会使用 ProcessExplorer 检查“java.exe”和“tomcat8.exe”以进行调查。另外,您是否检查过您的 Windows 防火墙?
    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 2017-07-20
    • 2014-05-26
    • 1970-01-01
    • 2017-07-03
    • 2010-10-28
    • 2015-09-23
    • 2011-12-10
    相关资源
    最近更新 更多