@WebServlet请求的资源不可用
我有一个@Weblistener
应用程序使用@Weblistener
和@WebServlet
注释。
启动Web应用程序时,会find并执行@Weblistener
注释类。 尝试使用其中一个servlet时,出现“资源不可用”页面。
如果我在web.xml
另外定义servlet,tomcat会在启动时抱怨同一个urlpattern已经被使用了两次,这表明@WebServlet
正在被正确扫描。
该应用程序在Eclipse中工作正常,但是当我在tomcat服务器上构build并运行它时,出现此错误。
请让我知道你需要哪些信息。
这是我的web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" metadata-complete="false" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> <display-name>MySearchApp</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
这是一个servlet类
@WebServlet(name="SearchServlet", displayName="SearchServlet", urlPatterns={"/search"}) public class Search extends HttpServlet {
这是我的maven文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.test</groupId> <artifactId>mysearchapp</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>biosearch Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> ...... </dependencies> <build> <finalName>mysearchapp</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.0</version> </plugin> </plugins> </build> </project>
我通过Docker运行应用程序。 这是我的Dockerfile,它位于我的项目的根文件夹中。
FROM freedomkk/tomcat-maven:8 ENV BUILD_DIR /tmp/mysearchapp WORKDIR $BUILD_DIR COPY . $BUILD_DIR RUN mvn clean && \ mvn compile war:war -e && \ cp target/mysearchapp.war $CATALINA_HOME/webapps/ WORKDIR $CATALINA_HOME CMD ["bin/catalina.sh", "run"] EXPOSE 8080
我最终用Eclipse的embedded式Maven运行时在本地机器上构build了war文件。 当我尝试使用外部Maven安装时,我遇到了同样的问题,如上所述。
Dockerfile变得更简单了。 我仍然认为Maven解决scheme更加优雅。
FROM tomcat:8.0-jre8 WORKDIR $CATALINA_HOME COPY mysearchapp.war webapps/ CMD ["catalina.sh", "run"] EXPOSE 8080
- 在docker container中调用php函数syslog无法工作
- docker工人 – 组成mongoose
- docker的卷是空的jenkins撰写文件,不复制任何文件
- dockers / IBM bluemix中的openconnect(错误:TUNSETIFF失败:设备不适当的ioctl)
- nginx.conf中的try_files不起作用
- Docker容器无法parsing请求到另一个容器中的服务
- 任何方式来删除docker容器和图像自动即使不成功的构build?
- Docker光盘工作stream程 – 使docker主持人拉动新的图像并部署它们
- 多个Bluemix Docker容器的相同IP地址