gpt4 book ai didi

web-applications - Maven 的 tomcat :run mojo doesn't see my servlet

转载 作者:行者123 更新时间:2023-11-28 21:59:18 25 4
gpt4 key购买 nike

我有一个由 Maven 管理的简单 WAR 项目。我在 src/main/java/* 下有 servlet 代码,在 src/main/webapp 下有所有静态内容(HTML、图像等)。我可以将生成的 WAR 部署到我们的暂存 JBoss 服务器上并且它可以工作,但是重新部署的往返过程非常缓慢。我希望能够在嵌入式 Tomcat 上本地测试更改,但我遇到了问题。

servlet 映射在 src/main/resources/web.xml 中设置——我认为它是正确的;相关部分看起来像

<servlet>
<servlet-name>myServ</servlet-name>
<servlet-class>my.pkg.MyServ</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>myServ</servlet-name>
<url-pattern>/ms</url-pattern>
</servlet-mapping>

Maven 告诉我它在 localhost:8080/myprojectname 运行,事实上当我去那里时我可以看到静态内容。但是,我已经尝试过 localhost:8080/myprojectname/ms 以及 ``localhost:8080/ms` —— 前者给了我一个 404,后者给了我一个 0 字节的响应。

简而言之:我的事件内容在哪里?我在控制台上什么也看不到。看起来 Maven 做了一个 target/tomcat/logs 但那是空的。 target/tomcat/webapps 也是空的,当我运行 mvn tomcat:run -X 时,我得到了很多调试输出,包括对所有 JAR 依赖项的引用,指向 target/classesclassesDir 属性(这是正确的),但没有提及我设置的 URL 模式的任何地方,也没有提及要调用的 Servlet 类的名称一个处理程序。我觉得我应该告诉 Maven 或 Tomcat 如何找到 web.xml,或者以另一种方式指定 URL 映射......如果你不知道,我是新手:D

预计到达时间:我的设置看起来非常像 this guy ,尽管我们的问题似乎有所不同。

最佳答案

比我想象的要简单:尽管 POM 设置为使用 src/main/resources/web.xml,但这不是放置它的“正确”位置。将它移动到 src/main/webapp/META-INF 使 servlet 出现——当然,这导致了项目设置中的另外十几个错误,但这是另一天的故事.

关于web-applications - Maven 的 tomcat :run mojo doesn't see my servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com