Java 从Netbeans启动Tomcat失败
我在从Netbeans IDE 7.4启动ApacheTomcat 6时遇到问题(在7.3版本中我也遇到了同样的问题。其他人提到,在其他版本中也存在此问题,如8.0等) 我做了什么:Java 从Netbeans启动Tomcat失败,java,apache,tomcat,netbeans,Java,Apache,Tomcat,Netbeans,我在从Netbeans IDE 7.4启动ApacheTomcat 6时遇到问题(在7.3版本中我也遇到了同样的问题。其他人提到,在其他版本中也存在此问题,如8.0等) 我做了什么: 删除已安装的Tomcat 7(如果不删除它,我也会遇到同样的困难) 添加新服务器,从ApacheTomcat网站下载(版本Apache-Tomcat-6.0.39,其他版本我也有同样的问题) 我的服务器位置:D:\apache tomcat netbeans 系统变量CATALINA\u HOME:D:\apac
- 删除已安装的Tomcat 7(如果不删除它,我也会遇到同样的困难)
- 添加新服务器,从ApacheTomcat网站下载(版本Apache-Tomcat-6.0.39,其他版本我也有同样的问题)
- 我的服务器位置:D:\apache tomcat netbeans
- 系统变量CATALINA\u HOME:D:\apachetomcat netbeans
- 系统变量JAVA HOME:C:\Program Files\JAVA\jdk1.7.0\U 51\
- tomcat用户:我让netbeans创建一个新用户,名为tomcat,密码为tomcat。添加服务器后打开{tomcat}\conf\tomcat-users.xml文件时,有关于我的用户的信息:
- 我作为管理员在Windows7上工作,所以我认为这不是文件权限的问题李>
- 禁用代理没有帮助李>
- 日志:只创建了一个日志文件:localhost.2014-03-06.log,该文件完全为空李>
- “以管理员身份”启动Netbeans没有帮助
- 在命令行中,一切正常,在正常或调试模式下启动(catalina.bat jpda start或startup.bat)没有问题
- 要使NetBeans能够与tomcat交互,需要在
tomcat users.xml
文件中正确配置NetBeans中的用户设置。NetBeans可以自动执行此操作
也就是说,在tomcat users.xml
中,可以在${CATALINA_HOME}/conf
或${CATALINA_BASE}/conf
中找到
脚本管理器
角色中<user password="tomcat" roles="manager,admin" username="tomcat"/>
实际上,netbeans联机帮助错误地指出:
用户名-指定IDE用于登录服务器的manager应用程序的用户名用户必须与管理员角色关联。IDE第一次启动Tomcat Web服务器时,例如通过开始/停止菜单操作或通过从IDE执行Web组件,IDE会向Tomcat基本路径/conf/Tomcat users.xml
文件中添加一个管理员用户,该用户带有随机生成的密码。(右键单击服务窗口中的Tomcat Web服务器实例节点并选择属性。在属性对话框中,基本目录属性指向Base dir
目录。)Tomcat users.xml
文件中的管理员用户条目与以下内容类似:
角色应该是经理脚本
,而不是经理
有关更完整的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>
在上还有另一个不错的帖子,它至少影响到NetBeans 7.4到8.0.2版本。它是从8.0版开始报告的,并在NetBeans 8.1中修复。任何tomcat版本都会出现问题(7.0.56到8.0.28版本已确认) 具体描述如下 此问题还与提及以下错误输出的帖子有关: “127.0.0.1*”不被识别为内部或外部命令、可操作程序或批处理文件 对于从zip文件安装的tomcat,我通过更改tomcat
bin
目录中的catalina.bat
文件来修复它
在您的catalina.bat
文件中找到以下配置
:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
:noJuliManager
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"
并通过删除双引号对其进行如下更改:
现在保存更改,并从NetBeans中启动tomcat。这会影响:
- 从8.5.3开始的所有Tomcat版本
- Netbeans 8.1之前的所有版本(在Netbeans 8.2中是固定的)
server.xml
文件的Connector
元素中,添加以下属性:server=“Apache Coyote/1.1”
例如:
原因
原因是在8.5.3之前,默认设置是将服务器头设置为apachecoyote/1.1,而从8.5.3开始,此默认设置现在已更改为空白。显然,Netbeans会检查此标头
也许将来我们可以期待netbeans解决这个问题
我可以追溯到文档中的更改
:
覆盖http响应的服务器头。如果设置,则值
对于此属性,将覆盖web服务器设置的任何服务器头
应用程序。如果未设置,则应用程序指定的任何值都是
已使用。如果应用程序未指定值,则没有服务器
标题已设置。“
:
覆盖http响应的服务器头。如果设置,则值
对于此属性,将覆盖Tomcat默认值和任何服务器头
由web应用程序设置。如果未设置,则为
已使用应用程序。如果应用程序未指定值,则
使用ApacheCoote/1.1。除非你是偏执狂,否则你不需要
这项功能。”
这就解释了自8.5.3版以来需要显式添加服务器属性的原因。此外,代理设置很可能存在此问题 任何没有克服TOMAT启动问题的人,-在NetBeans中尝试在工具->选项->常规选项卡中选择无代理
这对我有帮助。我也有同样的问题,但上面的答案都不起作用。
我的解决方案是恢复与Tomcat捆绑在一起的解决方案。这里的答案都没有解决我的问题(截至Febr)
<?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>
: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%