0

我已经使用 eclipse indigo 中的 m2e 插件设置了我的 maven 项目,并使用mvn eclipse:eclipse -Dwtpversion=1.5. 我已经设法让项目在 tomcat7 中启动并运行,除了我的 servlet,我无法为其创建 servlet 映射。

我曾尝试修改 web.xml 文件,但它会引发 ClassNotFoundException。目录结构和 web.xml :

(ROOT)
    +src
       +main
          +resources
              +DrawInitialMap.java
          +webapp
               (WebContent here)


<web-app>
   <servlet>
      <servlet-name>DrawInitialMap</servlet-name>
      <servlet-class>(groupId).(artifactId).src.main.resources.DrawInitialMap</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>DrawInitialMap</servlet-name>
      <url-pattern>/drawInitialMap.do</url-pattern>
   </servlet-mapping>
  (...)
</web-app>

虽然 @WebServlet 注释也无法映射 servlet :

@WebServlet(name="drawInitialMap", description="visualizes ttrp on html5 canvas", urlPatterns={"/drawInitialMap.do"})

提前感谢您,如果您需要更多代码,请通知您。

PS:请记住,servlet 在动态 Web 项目模式下完美运行,没有 Maven

4

1 回答 1

0

有几个问题。

  1. 你应该停止使用 eclipse:eclipse。相反,从 Eclipse Marketplace为 M2E 安装 WTP 集成
  2. 在 Maven 项目中,您的 DrawInitialMap 应该在 /src/main/classes 文件夹中。因此,它将按照默认的 Maven 项目约定进行编译
  3. web.xml 中的servlet-class 元素需要完整的类名,即没有(groupId).(artifactId).src.main.resources 之类的东西。
于 2012-06-27T13:42:08.197 回答