当前位置: 首页 > 知识库问答 >
问题:

初始化泽西岛找不到资源?

庞乐池
2023-03-14

2015-02-27 10:48:58,276  WARN main [AbstractLifeCycle]- FAILED Resources: java.lang.NullPointerException
java.lang.NullPointerException
    at org.glassfish.jersey.server.internal.routing.RuntimeModelBuilder.createInflector(RuntimeModelBuilder.java:128)
    at org.glassfish.jersey.server.internal.routing.RuntimeModelBuilder.createMethodRouter(RuntimeModelBuilder.java:115)
    at org.glassfish.jersey.server.internal.routing.RuntimeModelBuilder.createResourceMethodRouters(RuntimeModelBuilder.java:309)
    at org.glassfish.jersey.server.internal.routing.RuntimeModelBuilder.buildModel(RuntimeModelBuilder.java:173)
    at org.glassfish.jersey.server.internal.routing.Routing$Builder.buildStage(Routing.java:196)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:532)
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:166)
    at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:327)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
    at 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.processWithException(Errors.java:286)
    at org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:324)
    at org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:336)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:388)
    at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:107)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:716)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:254)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1238)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:683)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:480)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
    at org.eclipse.jetty.server.Server.doStart(Server.java:275)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at test.infrastructure.ApplicationHttpServer.start(ApplicationHttpServer.java:50)
    at test.infrastructure.ApplicationHttpServer.start(ApplicationHttpServer.java:33)
    at test.infrastructure.RunJetty.start(RunJetty.java:18)
    at test.infrastructure.RunJetty.main(RunJetty.java:10)
<filter>
        <filter-name>Resources</filter-name>
        <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
        <init-param>
            <param-name>org.glassfish.jersey.config.server.provider.packages</param-name>
            <param-value>app.web.rest</param-value>
        </init-param>
</filter>

共有1个答案

薛华奥
2023-03-14

您既可以扩展应用程序类,也可以直接在web.xml中提供提供者和资源列表。

方法1:使用应用程序类

来自泽西岛文档:

  Example 4.11.  Configuring Jersey container Servlet or Filter to use custom Application subclass      
   <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>org.foo.MyApplication</param-value>  
  </init-param>

例4.12。配置Jersey容器Servlet或过滤器以使用包扫描

<init-param>
    <param-name>jersey.config.server.provider.packages</param-name>
    <param-value>
        org.foo.myresources,org.bar.otherresources
    </param-value>
</init-param>
<init-param>
    <param-name>jersey.config.server.provider.scanning.recursive</param-name>
    <param-value>false</param-value>
</init-param>

我的首选是使用应用程序,因为它可以用来设置其他泽西属性以及。

如果上述设置不起作用,请提供您的应用程序pom.xml和web.xml。

 类似资料:
  • 我正在Google应用引擎中部署一个使用Jersey的示例应用程序。然而,当我尝试对REST资源执行GET或POST时,我得到一个-404 NOT FOUND错误。看来我漏掉了什么。 REST资源代码: 我包括了以下几个罐子: Jar Jersey-Client-1.12.Jar Jersey-Core-1.12.Jar Jersey-JSON-1.12.Jar Jersey-Server-1.1

  • 问题内容: 我是Web服务的新手,因此我从基本示例开始。这与文件上传有关。我正在为非Maven开发人员使用最新(2.17)版本的Jersey捆绑包。它指出: 捆绑包包含JAX-RS 2.0 API jar,所有核心Jersey模块jar以及所有必需的3rd-party依赖关系 。问题是我无法编译此部分: 尽管文档说确实存在,但似乎在Jersey 2.17软件包中并不存在。2.17捆绑包是否不完整?

  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 问题内容: 分析了整个互联网,但无法弄清楚为什么会发生这种情况。我有一个最简单的项目(使用jersey-quickstart- grizzly2原型),并且只有一个Jersey资源。我将Guice用作DI,因为CDI也不想与Jersey合作。问题在于,Guice在注入Jersey的资源时无法解析要使用的类。它在外面很好用,但不适用于泽西岛。这是泽西岛的资源: 传输接口: 它的实现: 遵循Googl

  • 我决定在这部分替换Web.XML: 我指向servlet容器Jersey,它将接受对REST-Controllers的请求,表明在启动时有必要扫描路径com . skillsimprover . REST examples . REST上的包REST,并表明资源的所有方法和类的基URI都填充了/api/* 从 JAX-RS 2.x 版本开始,可以使用应用程序类或资源配置类来注册包和资源。 我执行了

  • 问题内容: 将Jersey从1.15版本升级到1.17后,它开始记录以下消息: 产生此类消息的服务示例: 我的第一印象是将其视为错误消息,完全基于消息的措辞方式(“找不到”)。但是,它以INFO级别记录,并且在实践中似乎没有任何影响,因为所有服务都可以继续工作。 所以我的问题是这些日志消息是否表明我们配置或使用Jersey的方式存在(潜在)问题。由于以前的版本没有发生这种情况,因此我已经检查了发行