【问题标题】:Migrating to Jersey 2.x getting 404 errors while calling my api's迁移到 Jersey 2.x 在调用我的 api 时出现 404 错误
【发布时间】:2016-07-04 14:21:28
【问题描述】:

我正在从 com.sun.jersey 1.x 迁移到 org.glassfish.jersey 2.x,

我的 web.xml 看起来像:

     <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- Bean Configuration -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:application-context.xml</param-value>
</context-param>

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webservices</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<servlet>
    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.jersey.series.spring.security.service</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.xyz.webservices</param-value>
    </init-param>
    <!-- Enable / Disable Jersey Tracing and Logging. -->
    <init-param>
        <param-name>jersey.config.server.tracing</param-name>
        <param-value>${jersey.enable.trace}</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.disable.wadl</param-name>
        <param-value>${jersey.disable.wadl}</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>jersey-servlet</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

因此,com.xyz.webservices.resources 下定义的资源,无论何时被称为“/app/api/data”,都会显示 404 页面未找到。我在这里做错了吗?

【问题讨论】:

  • 我不知道你是否可以使用相同的初始化参数两次,但你可以只使用一次,并用逗号或分号分隔两个值。尝试这样做。
  • 试过它仍然给我这个错误:Jersey exception has been throwed javax.ws.rs.NotFoundException: HTTP 404 Not Found at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime .java:323) 在 org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 在 org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 在 org.glassfish。 jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:第267章)

标签: java web-services rest servlets jersey-2.0


【解决方案1】:

我通过将 web.xml 修改为:

    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.jersey.series.spring.security.service,com.xyz.webservices</param-value>
    </init-param>

    <!-- Enable / Disable Jersey Tracing -->
    <init-param>
        <param-name>jersey.config.server.tracing</param-name>
        <param-value>${jersey.enable.trace}</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.disable.wadl</param-name>
        <param-value>${jersey.disable.wadl}</param-value>
    </init-param>

    <!-- Enabling Jackson Feature and Logging -->
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.jackson.JacksonFeature,org.glassfish.jersey.filter.LoggingFilter,org.glassfish.jersey.server.filter.EncodingFilter,org.glassfish.jersey.message.DeflateEncoder,org.glassfish.jersey.message.GZipEncoder</param-value>
    </init-param>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2017-02-25
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    相关资源
    最近更新 更多