我正在使用 jersey 创建 Web 服务器
我的项目目录有以下映射
ProjectName
|.. src/main/java
|.. folder1
|.. restEndpoint1.java , restendpoint2.java etc
restEndpoint1.java 的外观示例是
@Path("/static1/static2")
public class DoStuff {
@POST
@Path("/static3")
@Consumes(MediaType.APPLICATION_XML)
@Produces("application/xml")
public Response validation(String inputXML){
所以部署到tomcat时我的url的一个例子是
localhost:port/projectName/foldername/{restendpoint1.path}
我的 web.xml 是
<servlet>
<servlet-name>jersey-servlet</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>folder1</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/folder1/*</url-pattern>
</servlet-mapping>
现在我必须使用tomcat web UI中的上下文路径将这场战争部署为不同的上下文(我使用的是Tomcat 7)
即我希望网址是
http://localhost:port/{context1}/{restendpoint1.path}
http://localhost:port/{context2}/{restendpoint1.path}
我知道每个上下文都会将所有其余端点暴露给它们,但我并不关心,我只需要以这种方式映射它。我面临的问题是
1)在 web.xml 中,我需要提供一个文件夹名称作为参数,以便成为 root ,但是在这个上下文要求下,我不能这样做。我也不能独立映射到每个java类(我可以吗??)
2)在tomcat UI中如何使用不同的上下文部署我的应用程序,我只能上传战争或给出上下文并在服务器上使用战争的URL