从Netbeans开始,Tomcat失败了

时间:2014-03-06 13:17:55

标签: 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 start startup.bat

6 个答案:

答案 0 :(得分:159)

它至少影响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,我通过更改tomcat catalina.bat目录中的bin文件来修复它。

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

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

:noJuliManager
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"

通过删除双引号

,如下所示进行更改
:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%

:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%

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

答案 1 :(得分:70)

这会影响:

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

这是因为Netbeans没有看到' tomcat已经启动了,虽然它开始很好。

我已提交Bug #262749 with NetBeans

解决方法

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

示例:

<Connector
  connectionTimeout="20000"
  port="8080"
  protocol="HTTP/1.1"
  redirectPort="8443"
  server="Apache-Coyote/1.1"
/>

原因

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

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

我能够将其追溯到文档的更改。

Tomcat 8.5

  

&#34;覆盖http响应的Server标头。如果设置,则为值   对于此属性,将覆盖Web设置的任何服务器标头   应用。如果未设置,则应用程序指定的任何值都是   用过的。如果应用程序未指定值,则没有服务器   标题已设置。&#34;

Tomcat 8.0

  

&#34;覆盖http响应的Server标头。如果设置,则为值   对于此属性,将覆盖Tomcat默认值和任何Server标头   由Web应用程序设置。如果未设置,则由...指定的任何值   应用程序使用。如果应用程序没有指定值   使用Apache-Coyote / 1.1。除非你是偏执狂,否则你不会需要   这个功能。&#34;

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

答案 2 :(得分:15)

此外,很可能是代理设置存在问题。

任何未克服Tomact启动problrem的人, - 尝试在NetBeans中选择工具中的无代理 - &gt;选项 - &gt;常规选项卡。

它帮助了我。

答案 3 :(得分:14)

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

他们正在处理请求,因此将在以后的.dmg安装程序中尽快进行修复,但是与此同时,您可以复制该错误中引用的文件并在您的netbeans modules文件夹中替换一个文件。

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

答案 4 :(得分:2)

为了使NetBeans能够与tomcat交互,它需要在netbeans中设置用户才能在tomcat-users.xml文件中正确配置。 NetBeans可以自动完成。

也就是说,您可以在tomcat-users.xml${CATALINA_HOME}/conf中找到${CATALINA_BASE}/conf

  1. 确保添加了script-manager角色
  2. 的用户(在netbeans中选择)

    示例,更改

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

    <user password="tomcat" roles="manager-script,manager,admin" username="tomcat"/>
    
    1. 确保声明manager-script角色
    2. 添加

      <role rolename="manager-script"/>
      

      实际上netbeans在线帮助错误地说明了:

        

      用户名 - 指定IDE用于登录服务器管理器应用程序的用户名。 用户必须与经理角色相关联。 IDE首次启动Tomcat Web Server时,例如通过“启动/停止”菜单操作或通过IDE执行Web组件,IDE会向管理员用户添加随机生成的密码到tomcat-base-path/conf/tomcat-users.xml文件。 (在“服务”窗口中右键单击Tomcat Web服务器实例节点,然后选择“属性”。在“属性”对话框中,“基本目录”属性指向base-dir目录。)tomcat-users.xml中的管理用户条目文件类似于以下内容:<user username="idea" password="woiehh" roles="manager"/>

      该角色应为manager-script,而不是manager

      要获得更完整的tomcat-users.xml文件:

      <?xml version='1.0' encoding='utf-8'?>
      <tomcat-users>
        <role rolename="manager-script"/>
        <role rolename="manager-gui"/>
        <user password="tomcat" roles="manager-script" username="tomcat"/>
        <user password="pass" roles="manager-gui" username="me"/>
      </tomcat-users>
      

      why am I getting the deployment error?

      还有另一个不错的帖子

答案 5 :(得分:1)

我遇到了同样的问题,但以上答案均无济于事。 对我来说,解决方案是还原与Tomcat捆绑在一起的Manager web application