我使用 Gradle 构建了一个小型 Web 应用程序。使用嵌入式 Jetty 服务器似乎进展顺利,但当我尝试将 WAR 文件复制到独立服务器时,情况就不那么好了。
我使用 gradle war 插件来组装战争。
运行 gradle jettyRunWar 工作正常。
将战争复制到 Jetty webapps 文件夹并运行 Jetty 失败,但出现以下异常:
java.lang.IllegalStateException: No such servlet servlet_name
但是,在嵌入式 Jetty 服务器中可以毫无问题地找到并使用这个相同的 servlet。
如果我手动将爆炸的战争复制到 webapps 目录,也会发生同样的问题。
Spring web 和 Spring mvc 库被复制并出现在 WEB-INF/libs 目录中,所以这不是找不到 Spring 的问题(或者是吗?)
我使用的是 Jetty 9.1,并且我的 web.xml 文件是为 Servlets v3 配置的。
我也在使用 Spring 3.2。我正在编写的 Web 应用程序是一个 RESTful 服务,使用 @Controller 注释来路由请求。
这应该就像复制战争一样简单,但似乎并非如此。在这里做什么有点茫然,有什么想法吗?
谢谢!