Mur*_*esh 8 java rest servlets jersey welcome-file
我有一个Jersey RESTful Web服务项目.我在web.xml中配置了Jersey容器,一切正常.
在同一个项目中,我引入了一个HTML页面并包含在<welcome-file-list>
处理其他一些非REST请求中.但是当我访问URL时,不会显示欢迎文件.
我在web.xml中评论Jersey容器配置并部署了应用程序后,这次我可以访问欢迎文件.
我使用的是Tomcat 7,JDK 7,Jersey 2.2和Eclipse Juno.Jersey配置后如何使欢迎文件正常工作?Jersey有没有限制,还是需要以不同的方式配置才能实现这一点?
我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com /xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>My Service</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.my.rest.service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>com.webservice.services</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.webservice.services</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)
尝试使用不同路径的URL模式,如上面给出的(/ service/*)用于REST.服务器启动时,它可以工作并欢迎文件显示.
小智 6
您当前的servlet映射是
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
Run Code Online (Sandbox Code Playgroud)
它将每个请求重定向到球衣.所以要使欢迎页面可见,你需要进行输入
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest</url-pattern>
Run Code Online (Sandbox Code Playgroud)
这个模式只会为网址打电话给球衣
http://localhost:8080/rest/
因此网址
http://localhost:8080/index.html
不会被重定向到泽西servlet.
针对相同方案的项目托管在https://github.com/skohli0302/jims上
归档时间: |
|
查看次数: |
20817 次 |
最近记录: |