从Netbeans开始,Tomcat失败了

liq*_*ide 56 java apache tomcat netbeans

我从Netbeans IDE 7.4启动Apache Tomcat 6时遇到问题(在7.3版本上我遇到了同样的麻烦.其他人提到这个问题也存在于其他版本中,如8.0等).

我做了什么:

  • 删除安装的Tomcat 7(没有删除它,我有同样的困难)
  • 添加新的服务器,从Apache Tomcat网站下载(版本apache-tomcat-6.0.39,与其他版本我有同样的问题)
  • 我的服务器位置:D:\ apache-tomcat-netbeans
  • 系统变量CATALINA_HOME:D:\ apache-tomcat-netbeans
  • 系统变量JAVA HOME:C:\ Program Files\Java\jdk1.7.0_51\
  • tomcat用户:我让netbeans创建新用户,用密码tomcat调用tomcat.当我在添加服务器后打开{tomcat}\conf\tomcat-users.xml文件时,有关于我的用户的信息:

    <user password ="tomcat"roles ="manager,admin"username ="tomcat"/>

当我现在点击"开始"时,我得到了" Tomcat的启动失败 ".

我的怀疑:

  • 我正在以管理员身份使用Windows 7,因此我认为这不是文件权限的问题.
  • 禁用代理没有帮助.
  • 日志:只创建了一个日志文件:localhost.2014-03-06.log,它完全为空.
  • 以管理员身份启动Netbeans并没有帮助.
  • 从命令行一切都很好,我在正常或调试模式下启动没有问题(catalina.bat jpda startstartup.bat)

Sud*_*pta 160

它至少影响NetBeans版本7.4到8.0.2.它首先从8.0版报告并在NetBeans 8.1中修复.它会出现任何tomcat版本的问题(对于版本7.0.56到8.0.28已确认).

细节描述为Netbeans bug#248182.

此问题还与提及以下错误输出的帖子有关:

'127.0.0.1*'不被识别为内部或外部命令,可操作程序或批处理文件.

对于从zip文件安装的tomcat,我通过更改catalina.battomcat bin目录中的文件来修复它.

catalina.bat文件中找到波纹管配置.

:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"

:noJuliManager
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"
Run Code Online (Sandbox Code Playgroud)

并通过删除双引号将其更改为如下所示:

:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%

:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
Run Code Online (Sandbox Code Playgroud)

现在保存更改,并从NetBeans中启动tomcat.

  • 适用于在Netbeans 8.0.1上运行的Tomcat 7.0.56 (5认同)
  • 没帮我 - netbeans 8.0.2,tomcat 8.0.15 (5认同)
  • 完美,先生!在Netbeans 8.0.2上运行Tomcat 7.0.57.这需要是一个公认的答案. (3认同)

YoY*_*oYo 72

这会影响:

  • 所有版本的Tomcat从8.5.3开始.
  • 所有版本的Netbeans最高为8.1(在Netbeans 8.2中已修复).

这是因为Netbeans没有"看到"tomcat启动,尽管它开始没问题.

我已经使用NetBeans提交了Bug#262749.

解决方法

server.xml文件中,在ConnectorHTTP/1.1 的元素中,添加以下属性:server="Apache-Coyote/1.1".

例:

<Connector
  connectionTimeout="20000"
  port="8080"
  protocol="HTTP/1.1"
  redirectPort="8443"
  server="Apache-Coyote/1.1"
/>
Run Code Online (Sandbox Code Playgroud)

原因

原因是在8.5.3之前,默认设置是将服务器头设置为Apache-Coyote/1.1,而从8.5.3开始,此默认值现在已更改为空白.显然Netbeans检查这个标题.

也许将来我们可以期待netbeans解决这个问题.

我能够追溯到文档的变化.

Tomcat 8.5:

"覆盖http响应的Server标头.如果设置,则此属性的值将覆盖Web应用程序设置的任何Server标头.如果未设置,则使用应用程序指定的任何值.如果应用程序未指定值,则没有设置服务器标头."

Tomcat 8.0:

"覆盖http响应的Server标头.如果设置,则此属性的值将覆盖Tomcat默认值和Web应用程序设置的任何Server标头.如果未设置,则使用应用程序指定的任何值.如果应用程序不指定一个值然后使用Apache-Coyote/1.1.除非你是偏执狂,否则你不需要这个功能."

这解释了从版本8.5.3开始显式添加服务器属性的必要性.


Yan*_*Pak 18

此外,很可能是代理设置的问题.

任何没有克服Tomact启动problrem的人, - 在NetBeans中尝试在工具 - >选项 - >常规选项卡中选择无代理.

它帮助了我.


Dev*_*Ltd 14

这里的答案都没有解决我的问题(截至 2020 年 2 月),所以我在https://issues.apache.org/jira/browse/NETBEANS-3903提出了一个问题,Netbeans 解决了这个问题!

他们正在处理拉取请求,因此修复程序很快就会在未来的 .dmg 安装程序中出现,但与此同时,您可以复制错误中引用的文件并替换您的 netbeans 模块文件夹中的文件。

提示 - 如果您右键单击 Applications > Netbeans 并选择 Show Package Contents 显示包裹内容然后您可以找到并替换它们在您的 Netbeans 文件夹中引用的文件org-netbeans-modules-tomcat5.jar,例如在 /Applications/NetBeans/Apache NetBeans 11.2.app/Contents/Resources/NetBeans/netbeans/enterprise/modules