【问题标题】:Multiple servlets on jersey (no spring nor maven)jersey 上的多个 servlet(没有 spring 也没有 maven)
【发布时间】:2018-05-17 01:07:48
【问题描述】:

我的应用程序中有两个 servlet,我想显示它们的内容,所以我这样做了:

<servlet>
            <servlet-name>DisciplinaService</servlet-name>
            <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.lab4.club.main.MiApp</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
            <servlet-name>SocioService</servlet-name>
            <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.lab4.club.main.MiApp</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
            <servlet-name>DisciplinaService</servlet-name>
            <url-pattern>/*</url-pattern>
</servlet-mapping>      
<servlet-mapping>
            <servlet-name>SocioService</servlet-name>
            <url-pattern>/*</url-pattern>
</servlet-mapping>  

当我输入“../disciplinas”或“../socios”时,出现 404 错误。 但是,如果我只有一个映射的 servlet,像这样:

<servlet>
            <servlet-name>DisciplinaService</servlet-name>
            <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.lab4.club.main.MiApp</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
            <servlet-name>DisciplinaService</servlet-name>
            <url-pattern>/*</url-pattern>
</servlet-mapping>      

没有问题。

谁能帮我展示这两个 servlet?问题出在 web.xml 中,我不知道两个如何显示多个 servlet。请注意,我没有使用 spring 或 maven。

【问题讨论】:

    标签: java spring maven servlets jersey


    【解决方案1】:

    您的servlet-mapping 对于两个 servlet 不应该相同, 尝试将每个 servlet 映射到不同的 url 模式。

    <servlet-mapping>
                <servlet-name>DisciplinaService</servlet-name>
                <url-pattern>/disciplina/*</url-pattern>
    </servlet-mapping>      
    <servlet-mapping>
                <servlet-name>SocioService</servlet-name>
                <url-pattern>/socio/*</url-pattern>
    </servlet-mapping>  
    

    【讨论】:

    • 确实,你是对的!但现在我有:/socios/socios 如果我只想要 /socios 怎么办?
    • 您应该更改 @Path 类上的 @Path 注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多