我有一个使用 CXF 来实现 JAX-RS 的 REST API,其中 REST 端点直接位于根上下文上。
例如,如果我的根上下文是 localhost:8080/myservice
我的端点是:
localhost:8080/myservice/resource1
localhost:8080/myservice/resource2
但我想提供这样的静态内容:
localhost:8080/myservice/docs/swagger.json
在我的 web.xml 中我想做这样的事情:
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/docs/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,CXFServlet 会获取所有请求,并且我找不到配置 CXF / JAX-RS 来服务我的静态内容而不包含新库和创建字节流等的方法,这是我不想做的做。我只想映射到默认的 servlet。
CXF 文档不容易理解,我尝试执行以下操作但没有成功:
<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>
/docs/(\S)+\.html
/docs/(\S)+\.json
</param-value>
</init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?