在Eclipse Luna中使用TomCat 8 ......
在任何人开始吓坏并说之前已经回答过这个问题之前(因为所有答案都说使用@WebServlet注释在这种情况下不起作用),我想指出我有一个特定需要/希望使用web.xml来定义servlet。
为了避免因为我更改了可能更改的值(例如数据库的IP地址)而不得不重新编译和重新部署应用程序,我想在servlet标记中添加init-param标记在应用程序的web.xml文件中。
但正如已经多次指出的那样,将servlet标记添加到web.xml使得tomcat不会在eclipse中启动 - 删除标记并使用@WebServlet注释修复问题。
不幸的是,提供的错误消息几乎没有用,因为发生这种情况时会出现错误消息:“localhost上的服务器Tomcat v8.0服务器无法启动。”此外,eclipse中的控制台输出提供此错误消息“严重:无法破坏与ProtocolHandler相关的终点[”ajp-nio-8009“] java.lang.NullPointerException“但我无法弄清楚这与web.xml文件有什么关系。
我没有为这个特定的servlet使用@WebServlet的原因是因为这意味着我每次更改数据库的IP地址时都必须重新编译和重新部署 - 当更好的方法是进行更改时在web.xml中,只需重新启动tomcat。
有没有办法克服这个问题,或者我每次做出更改时都会手动将应用程序部署到tomcat - 这在开发过程中经常发生变化时非常痛苦。
答案 0 :(得分:0)
您可以尝试这样做:
,而不是使用web.xmlCATALINA_OPTS=-Dmyip=10.0.0.1
设置Java系统属性。 Se this link 在Eclipse中,您可以在运行配置中为tomcat
编辑它答案 1 :(得分:0)
我刚刚经历了同样的挑战,答案出奇的简单,只是偶然得到的。添加新 servlet 时,将定义 servlet 的配置排序为 web.xml 中的第一个,然后是 servlet 路径定义。更改为此顺序将启动 tomcat,您可以继续测试各个 servlet 和开发。