如何将SpringServlet映射到root,并在root中提供静态内容?
我有一个JAX-RSSpring服务,我在其中添加了swagger。Swagger构建了服务的json描述,该描述必须作为静态文件提供。我还包括了swagger ui,可以很好地查看json描述。我的问题是,当将servlet路径映射到根目录时,它将不会为/swagger下的静态swagger文件提供服务。服务很好。如果我将服务映射到非根路径,如/rest/*,这两种方法都可以使用。我宁愿在中间有一条没有“休息”的好路线。< /P> 因此,当我有如何将SpringServlet映射到root,并在root中提供静态内容?,spring,rest,servlets,static,Spring,Rest,Servlets,Static,我有一个JAX-RSSpring服务,我在其中添加了swagger。Swagger构建了服务的json描述,该描述必须作为静态文件提供。我还包括了swagger ui,可以很好地查看json描述。我的问题是,当将servlet路径映射到根目录时,它将不会为/swagger下的静态swagger文件提供服务。服务很好。如果我将服务映射到非根路径,如/rest/*,这两种方法都可以使用。我宁愿在中间有一条没有“休息”的好路线。< /P> 因此,当我有/时,服务位于根/处,转到/swagger/返回4
/
时,服务位于根/
处,转到/swagger/
返回404 not found。如果我更改为/rest/*
,则服务在/rest/
下工作,并且在/swagger
上可以看到swagger。是否可以在不需要将服务置于/rest/*
下的情况下进行此工作
我在春季3.0.7版和泽西1.8版。编辑:另外,它在Weblogic 10.3.6.0上运行
web.xml:
数据访问服务
com.my.Startup
org.springframework.web.context.ContextLoaderListener
上下文配置位置
类路径:application-context.xml
本地部署
符合事实的
泽西servlet
com.sun.jersey.spi.spring.container.servlet.SpringServlet
com.sun.jersey.config.property.packages
com.my.rs
com.sun.jersey.api.json.POJOMappingFeature
符合事实的
1.
泽西servlet
/
我通过使用过滤器定义而不是servlet定义来实现这一点。此外,JERSEY 1.8中还有一个bug,导致我的挂载点需要一个尾部正斜杠(),所以我更新为JERSEY 1.19。当我的项目的功能稳定时,我计划进一步更新到2.x和Spring4.x
下面是web.xml,它允许我在与我的服务相同的根目录中拥有一个招摇过市的ui视图:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Data Access Service</display-name>
<listener>
<listener-class>com.my.Startup</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application-context.xml</param-value>
</context-param>
<context-param>
<param-name>local-deployment</param-name>
<param-value>true</param-value>
</context-param>
<filter>
<filter-name>jersey</filter-name>
<filter-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</filter-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.my.rs</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jersey</filter-name>
<url-pattern></url-pattern>
</filter-mapping>
数据访问服务
com.my.Startup
org.springframework.web.context.ContextLoaderListener
上下文配置位置
类路径:application-context.xml
本地部署
符合事实的
运动衫
com.sun.jersey.spi.spring.container.servlet.SpringServlet
com.sun.jersey.config.property.packages
com.my.rs
com.sun.jersey.config.feature.Redirect
符合事实的
com.sun.jersey.config.feature.FilterForwardOn404
符合事实的
com.sun.jersey.api.json.POJOMappingFeature
符合事实的
运动衫
阅读该章和文档中的下一章:是的,这是我在发布之前尝试过的文档部分,但它不起作用。即使添加到application-context.xml也没有什么区别。我没有自定义的默认servlet。我应该补充一点,这是在WebLogic10.3.6.0上运行的。谢谢你的帮助!啊,我刚刚重读了你的问题。映射到/的不是spring dispatcher servlet,而是jersey servlet,因此无法工作。