Tag: servlets

@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> […]

通过链接的docker容器从nginx到jetty传递正确的ip

我有两个docker容器运行,一个是nginx接受http和https请求,并将它们传递给另一个是docker容器。 自从我切换到docker工人后,我注意到了一个问题。 我无法得到正确的请求IP。 docker应用程序检查请求IP以确保请求来自特定的服务器。 在Servlet中,我使用下面的代码来获取IP: protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { … String remoteIpAddress = request.getRemoteAddr(); … } 但是我得到了IP 172.17.0.x,这似乎是来自docker的IP,而不是来自请求者的预期IP。 我的docker图像运行以下参数: docker run -d –read-only –name=jetty -v /tmp -v /run/jetty jetty:9 docker run -d –read-only –name=nginx –link jetty:jetty -v /var/run -p 80:80 -p 443:443 nginx 重要的部分是 – –link参数,在那里我把docker连接到nginx。 在nginxconfiguration中,我定义了一个代理传递给jetty: proxy_set_header Host […]