将WAR部署到AWS Tomcat 404错误
我试图将在JDK 1.8中编译的WAR文件部署到AWS Tomcat Elastic Beanstalk实例。弹性beanstalk实例使用JDK 8和Tomcat 8,所以我不明白为什么我在部署WAR文件时收到404错误。如果有任何帮助,我正在使用gradle构建和WAR应用程序。将WAR部署到AWS Tomcat 404错误
日志太大,粘贴,我不知道什么是显著,所以我上传的捆绑压缩到我的Dropbox的,你可以在这里找到: https://www.dropbox.com/s/d1ssmz76pbqkn20/BundleLogs-1487348401257.zip?dl=0
我的web.xml也过长的问题贴,所以我会在这里链接到它:https://www.dropbox.com/s/4m7v3fhcczs0ina/web.xml?dl=0
我知道这是不好的做法放弃,因为他们的可变性的堆栈溢出的联系,所以一旦找到解决方法,我会编辑的问题,直接包括相关的代码段。
你的错误是非常直截了当:
org.xml.sax.SAXParseException; systemId: file:/var/lib/tomcat8/webapps/ROOT/WEB-INF/web.xml; lineNumber: 477; columnNumber: 23; Error at (477, 23) : The servlets named [TextHistoryServlet] and [TextHistoryServlet] are both mapped to the url-pattern [/TextHistoryServlet] which is not permitted
围绕这条线,你会看到:
<servlet-mapping>
<servlet-name>CsvParseServlet</servlet-name>
<url-pattern>/CsvParseServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextHistoryServlet</servlet-name>
<url-pattern>/TextHistoryServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextHistoryServlet</servlet-name>
<url-pattern>/TextHistoryServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SurveyServlet</servlet-name>
<url-pattern>/SurveyServlet</url-pattern>
</servlet-mapping>
为TextHistoryServlet
非常感谢死者的回应。我在日志中看到了不少错误,并认为这个问题比这个问题更严重,但这确实有窍门! –
取下第二映射我也不太清楚,如果这解决了你的问题。我有一个类似的问题,并且在扩展SpringBootServletInitializer之后被修复了。这是因为我的应用程序运行使用Tomcat 8,Java 8平台,这就像一个容器。通常,在容器中部署战争时,需要扩展SpringBootServletInitializer。
下面是一个简单Application.java
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这是否在本地计算机上一样运行战争?你所有的依赖都是在Gradle中而不是在你的本地类路径中捕获的吗?你也试图部署它作为ROOT的Web应用程序或只是your-website.com/webapp或只是your-website.com? –