java - Tomcat 上下文使用 Jersey 冲突

标签 java tomcat web-applications localhost jersey-1.0

我正在使用 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 中的上下文路径将这场 war 部署为不同的上下文(我使用的是 Tomcat 7)

即我希望 url 是

http://localhost:port/{context1}/{restendpoint1.path}

http://localhost:port/{context2}/{restendpoint1.path}

我知道每个上下文都会向它们公开所有其余端点,但我不关心这个,我只需要以这种方式映射它。我面临的问题是

1) 在 web.xml 中,我需要提供一个文件夹名称作为参数,以便它成为一个根目录,但由于此上下文要求,我不能这样做。我也不能独立映射到每个 java 类(我可以吗??)

2) 在 tomcat UI 中,我如何使用不同的上下文部署我的应用程序,我只能上传 war 或提供上下文并在服务器上使用 war 的 URL

最佳答案

通过更改 web.xml 中的映射解决

 <servlet-mapping>
        <servlet-name>jersey-servlet</servlet-name>
        <url-pattern>/folder1/*</url-pattern>
    </servlet-mapping>

<servlet-mapping>
        <servlet-name>jersey-servlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

关于java - Tomcat 上下文使用 Jersey 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398030/

相关文章:

java - 从 dom 文档创建 json

java - Java 中的finally block 总是被执行吗?

java - Android CursorAdapters、ListViews 和后台线程

javascript - 当 textarea 聚焦时防止移动 safari 滚动页面

javascript - 我应该在哪里进行大量计算?客户端还是服务器端?

java - Android:单元测试中的键盘输入

tomcat - Tomcat 7 或 Tomcat 6 的最低和推荐要求

java - 在 OSX/Unix 上设置额外的 Tomcat 服务器

java - CentOS 7 上的 TomEE 在 CentOS 更新后无法通过 JDBC 连接到 Microsoft SQL Server

python - 如何在Google App Engine中定义具有多对多关系的模型?