我有我的web.xml
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<init-param>
<param-name>static-resources-list</param-name>
<param-value>/myfiles/(\w.*)+(.html|.js)</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
spring config:
<jaxrs:server id="services" address="/">
<jaxrs:serviceBeans>
<bean class="com.abc.MyController"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
</jaxrs:providers>
</jaxrs:server>
我的其他资源适用于网址http://localhost/appname/resource...
现在我的源代码中有src/main/webapp/myfiles/fileOne.html
。
我想使用网址http://localhost/appname/file
重定向到fileOne.html。我该怎么办?
编辑:
我在上面的web.xml cxf配置中添加了static-resources-list。我知道http://localhost/appname/myfiles/fileOne.html
有效,但我想使用网址http://localhost/appname/file
来提供fileOne.html。我该怎么做?
答案 0 :(得分:1)
找到解决方案;以防任何人需要它。
CXF servlet配置中的redirects-list参数并没有达到我的目的。所以我在web.xml中添加了以下servlet配置,以重定向到我的html页面。
<servlet>
<servlet-name>swagger-ui</servlet-name>
<jsp-file>/myfiles/fileOne.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>swagger-ui</servlet-name>
<url-pattern>/file</url-pattern>
</servlet-mapping>
答案 1 :(得分:0)
你可以在servlet标签中使用这样的东西:
<init-param>
<param-name>static-welcome-file</param-name>
<param-value>/index.html</param-value>
</init-param>
答案 2 :(得分:0)
您的CXFServlet网址映射是个问题。您将映射作为/ *。因此所有请求,甚至静态资源都被路由到CXFServlet。尝试将CXFServlet映射到其他内容。它会工作得很好。您不需要static-resources-list。
因为您将CXFServlet的url映射作为/ *,所以每个URL都会尝试从CXFServlet中找到响应,因为它的jax-rs服务器不知道静态资源,因此没有找到响应。