从 Netbeans 启动 Tomcat 失败
Posted
技术标签:
【中文标题】从 Netbeans 启动 Tomcat 失败【英文标题】:Starting of Tomcat failed from Netbeans 【发布时间】:2014-04-09 03:56:44 【问题描述】:我在从 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 文件时,有关于我的用户的信息:
当我现在单击“开始”时,出现“Tomcat 启动失败”。
我的怀疑:
我以管理员身份在 Windows 7 上工作,所以我认为这不是文件权限的问题。 禁用代理没有帮助。 日志:只创建了一个日志文件:localhost.2014-03-06.log,完全为空。 “以管理员身份”启动 Netbeans 没有帮助。 从命令行一切正常,在正常或调试模式下启动没有问题(catalina.bat jpda start 或 startup.bat)【问题讨论】:
检查您的服务器日志,可能位于 D:\apache-tomcat-netbeans\logs\ 之类的位置。可能是由于端口冲突。但是你的日志会有这样的信息。 检查现有的日志文件应该始终是您做的第一件事。 日志完全为空。只创建了一个文件:localhost.2014-03-06.log 您是否尝试过从命令行启动服务器?我见过由于配置错误而立即失败的情况,您可能会在那里收到更好的错误消息... 从命令行一切正常,在正常或调试模式下启动没有问题。 【参考方案1】:为了让 NetBeans 能够与 tomcat 交互,它需要用户作为 netbeans 中的设置在 tomcat-users.xml
文件中正确配置。 NetBeans 可以自动执行此操作。
即在tomcat-users.xml
内,您可以在$CATALINA_HOME/conf
或$CATALINA_BASE/conf
中找到,
-
确保为用户(在 netbeans 中选择)添加了
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 服务器时,例如通过开始/停止菜单操作或通过从 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? 上还有另一个不错的帖子
【讨论】:
不幸的是它没有帮助。没有什么变化。我的 tomcat-users.xml 现在是:它至少会影响 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 bin
目录中的catalina.bat
文件来修复它。
在您的 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。
【讨论】:
适用于在 Netbeans 8.0.1 上运行的 Tomcat 7.0.56 没有帮助我 - netbeans 8.0.2,tomcat 8.0.15 在 Windows 上使用 NetBeans 8.0.2 和 Tomcat 8.0.15!知道问题到底是什么吗?我不明白引号有什么不同。 在 Windows 8 上,我必须以管理员身份打开记事本才能完成此操作。 @BlackSwan 请参阅 my answer 特定于 tomcat 8.5.3 及至少到 netbeans 8.1。【参考方案3】:这会影响:
从 8.5.3 开始的所有 Tomcat 版本。 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:
"覆盖 http 响应的服务器标头。如果设置,则值 因为这个属性会覆盖任何由 web 设置的 Server 标头 应用。如果未设置,则应用程序指定的任何值都是 用过的。如果应用程序未指定值,则没有服务器 标头已设置。”
Tomcat 8.0:
"覆盖 http 响应的服务器标头。如果设置,则值 此属性覆盖 Tomcat 默认值和任何服务器标头 由 Web 应用程序设置。如果未设置,则由 应用程序被使用。如果应用程序没有指定一个值,那么 使用 Apache-Coyote/1.1。除非你是偏执狂,否则你不需要 这个功能。”
这解释了从 8.5.3 版本开始需要显式添加服务器属性。
【讨论】:
这也是 brew 安装版本的确切解决方案! 我必须同时应用已接受的答案和 this 才能正常工作 我做这个配置是为了让 NetBeans IDE 8.1 和 apache-tomcat-8.5.6 的组合工作。谢谢。 此解决方法也适用于 Apache Tomcat/8.5.28 NetBeans IDE 8.1。 解决方法适用于 Windows 10 上的 NB 11.1 和 Tomcat 9.0.6,谢谢。【参考方案4】:另外,很可能是代理设置的问题。
任何没有克服 Tomact 启动问题的人 - 尝试在 NetBeans 中选择 No Proxy 在工具 -> 选项 -> 常规选项卡中。
它帮助了我。
【讨论】:
在企业环境中,您的其余集成可能需要代理才能正常工作,包括接收 netbeans 更新,以及对包括 github 在内的外部存储库的 git 访问。保留代理的更好选择是在代理上设置 localhost 例外。 是的,你完全正确。我的案例适用于您的网络不使用代理时的情况。 哦,出乎意料的是,这对我有用,在按照上面的建议更改 server.xml 之后(仍然有同样的问题):Netbeans 8.1 + TomEE 7.1.0(tar.gz 版本) 这里的解决方案都没有帮助我,但是 Netbeans 的人为我提供了一个文件,该文件可以在 Mac Catalina 上运行 Netbeans 10.2 和 Tomcat 8.x 和 9.x - 请参阅我的回答 @987654321 @【参考方案5】:我遇到了同样的问题,但上面的答案都没有奏效。 我的解决方案是恢复与 Tomcat 捆绑的Manager web application。
【讨论】:
【参考方案6】:这里的答案都没有解决我的问题(截至 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 中
【讨论】:
太棒了!感谢您联系开发人员并帮助他们解决此问题 这对我有用,谢谢。我正在使用在 macOS High Sierra 上运行的 Netbeans 11.3、Tomcat 9.0.39。以上是关于从 Netbeans 启动 Tomcat 失败的主要内容,如果未能解决你的问题,请参考以下文章
NetBeans:无法启动 Tomcat(“系统找不到指定的文件”)
将war文件放在tomcat服务器上后如何启动netbeans项目?