我正在使用NetBeans 6.8和Tomcat 6.0.xx.我已经创建了一个自定义领域并更新了NetBeans项目build.xml以将领域部署到Tomcat。当我调试项目时,NetBeans启动Tomcat服务器并为'manager / list'发出初始HTTP GET请求。 Tomcat慷慨地将此请求移交给我的自定义领域进行身份验证。请求被拒绝,NetBeans在输出窗口中显示以下错误:(注意:NetBeans获取访问权限后显示错误)
尚未授权访问Tomcat服务器。在服务器管理器的Tomcat自定义程序中使用“manager”角色设置正确的用户名和密码。
我是否有错误配置的内容?如何阻止NetBeans发出此初始请求?
谢谢, 德鲁
答案 0 :(得分:1)
所以我想出来了。我在conf / server.xml中的引擎级别(例如在标记内)添加了我的自定义领域声明。因此,当NetBeans在Tomcat上启动我的应用程序时,NetBeans受我的自定义领域身份验证的限制。解决方案是将realm标记放在host元素内的context元素中。以下是有关server.xml中元素的一些信息:http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
一旦你完成了上述任务,你将遇到的下一个问题是,NetBeans做了一个名为“就地部署”的奇特小工具。这实质上意味着它在启动应用程序时将它自己的上下文元素注入到Tomcat中。这将与刚刚添加了server.xml的上下文元素冲突。要解决此问题,请从server.xml中删除context元素(我知道您刚刚添加了它)。在NetBeans项目目录中,有一个文件web / META-INF / context.xml。将自定义领域元素声明放在此处。 NetBeans在启动时将此文件提供给Tomcat。
希望这有帮助。