Java 项目不部署到localhost根目录,但部署到localhost/projecttitle

Java 项目不部署到localhost根目录,但部署到localhost/projecttitle,java,eclipse,tomcat,servlets,Java,Eclipse,Tomcat,Servlets,备选标题:无法找到[main.SearchServlet],在使用注释时在Tomcat中映射我的servlet 我正在尝试将我的web应用程序从java netbeans glassfish jdk 1.8迁移到eclipse tomcat jdk 1.7 当我试图通过按下我加载的索引jsp上的按钮来执行我的POST时,我不断收到一个405然后404的错误 javax.naming.NameNotFoundException: Name [main.SearchServlet/annj] is

备选标题:无法找到[main.SearchServlet],在使用注释时在Tomcat中映射我的servlet

我正在尝试将我的web应用程序从java netbeans glassfish jdk 1.8迁移到eclipse tomcat jdk 1.7

当我试图通过按下我加载的索引jsp上的按钮来执行我的POST时,我不断收到一个405然后404的错误

javax.naming.NameNotFoundException: Name [main.SearchServlet/annj] is not bound in this Context. Unable to find [main.SearchServlet].
我认为在web.xml中设置a/可以解决这个问题。它确实将我的加载页面从localhost/animelist/index和localhost/animelist向下移动了一个级别到localhost/和localhost/animelist,但是它没有修复我的错误

就目前情况而言,我的项目不是在http://localhost:8080/ 或http://localhost:8080/index.jsp . 它的运行速度非常快http://localhost:8080/animelist1/ 和http://localhost:8080/animelist1/index.jsp

该项目在我的netbeans设置中运行良好,所以我的问题是,要在tomcat中正确映射servlet,我需要做什么

有人说,您唯一的问题可能是辅助Eclipse中的应用程序部署尚未正常工作。如中所示:servlet类文件根本没有部署到服务器。我不知道如何着手修复这个问题,或者用谷歌搜索它

我有我的类实例

@EJB
private AnnJAXB annj;
和servlet

@WebServlet(name = "SearchServlet", urlPatterns = { "/search" })
就像我说的,这一切都可以在netbeans设置中运行

既然部署应该自动完成,那么我是否必须对tomcat配置或应用程序属性做些什么呢?为什么找不到mainClass.SearchServlet


谢谢你的阅读。我感觉自己快完了。试图将其部署到主机上已经花了15个小时,这让人筋疲力尽

重复:我测试了使用/在server.xml中更改我的根目录,但是仍然出现找不到[mainClass.SearchServlet]错误。我还尝试更改searchservlet的URL模式和jquery中的URL。是否存在其他可能影响SearchServlet未定位的因素,例如设置/构建设置?此外,这并不能解释为什么我的web应用程序在Eclipse中出现在/localhost/animelist/中,而在我的netbeans设置中出现在localhost/中。是什么导致了差异?您不应该试图在根目录下部署。在我看来,最好使用上下文根。你在浪费时间和它战斗。我只是想找出它为什么要部署在哪里可能会帮助我修复它。我两种方法都试过了,但都找不到servlet。我没有向xml文件添加任何内容来标识servlet映射,因为我正在使用这些注释。也许我应该试试旧方法,使用xml映射?