我从Netbeans IDE 7.4启动Apache Tomcat 6时遇到问题(在7.3版本上我遇到了同样的问题。其他人提到这个问题也存在于其他版本中,如8.0等)。
我做了什么:
tomcat用户:我让netbeans创建新用户,名为tomcat,密码为tomcat。当我在添加服务器后打开{tomcat} \ conf \ tomcat-users.xml文件时,有关于我的用户的信息:
< user password =“tomcat”roles =“manager,admin”username =“tomcat”/>
当我现在点击“开始”时,我得到“ Tomcat启动失败”。
我的怀疑:
答案 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)
这会影响:
这是因为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解决这个问题。
我能够将其追溯到文档的更改。
&#34;覆盖http响应的Server标头。如果设置,则为值 对于此属性,将覆盖Web设置的任何服务器标头 应用。如果未设置,则应用程序指定的任何值都是 用过的。如果应用程序未指定值,则没有服务器 标题已设置。&#34;
&#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”并选择“显示软件包内容”,则可以找到并替换它们在您的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
,
script-manager
角色示例,更改
<user password="tomcat" roles="manager,admin" username="tomcat"/>
要
<user password="tomcat" roles="manager-script,manager,admin" username="tomcat"/>
manager-script
角色添加
<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>
还有另一个不错的帖子
答案 5 :(得分:1)
我遇到了同样的问题,但以上答案均无济于事。 对我来说,解决方案是还原与Tomcat捆绑在一起的Manager web application。