java - 提供静态内容 Jetty Jersey Gradle

标签 java gradle jersey jetty jersey-2.0

因此,我尝试让 Jetty/Jersey/Gradle 设置提供默认 url 中位于 src/main/webapp/static/ 中的 index.html。我的 java 服务器有 /api ,所以我认为显示静态内容会有点容易,但我遇到了问题。这是我的 web.xml

中的内容
<filter>
    <filter-name>Webapp Filter</filter-name>
    <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>main/webapp/static</param-value>
    </init-param>
    <init-param>
      <param-name>jersey.config.servlet.filter.staticContentRegex</param-name>
      <param-value>/.*html</param-value>
    </init-param>
  </filter> 
  <filter-mapping>
    <filter-name>Webapp Filter</filter-name>
    <url-pattern>/*</url-pattern> 
  </filter-mapping>

我错过了什么或者做错了什么吗?当我执行 gradle jettyRun 时,我得到了

The ResourceConfig instance does not contain any root resource classes.
failed Webapp Filter: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
Failed startup of context org.gradle.api.plugins.jetty.internal.JettyPluginWebAppContext@48e8a298{/Project,/User/Project/src/main/webapp}
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.

所以这让我觉得它正在寻找正确的地方,但也许它只是没有找到正确的东西?感谢您的帮助,我真的很感激

最佳答案

异常意味着: com.sun.jersey.api.container.ContainerException:ResourceConfig 实例不包含任何根资源类。注意到您,该 Jersey 找不到服务类。

您的 init-param jersey.config.server.provider.packages 设置不正确,而且位置错误。这就是您想要添加资源类的地方,之后,jersey 想要在那里找到一些 @Path 注释(又名资源类)。
正如我所说,它位于错误的位置 - 它不是过滤器的一部分,它是ServletContainer servlet 配置的一部分。或者,您可以忽略此内容并在 ResourceConfigApplication 实现中声明包。

请阅读:deployment guide

摘要:

<filter>...</filter>

是您可以放置​​过滤器的地方

<servlet>...</servlet>

(我在 web.xml 中找不到)是您应该插入 ServletContainer 的位置。

因为我已经回答了this question昨天对你来说,我真的建议你阅读手册并尝试一些示例项目,例如:

gradle & tomcat
jersey examples

您还会在那里找到一些 web.xml。

关于java - 提供静态内容 Jetty Jersey Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25892831/

相关文章:

java - 是否可以在Java中提取样条函数的公式?

java - 如何拦截整个安卓屏幕上的每个触摸事件?

gradle - 只能在NetBeans中加载一些gradle项目

java - 安卓/gradle : not able to use repository

java - Jersey 没有看到我的 MessageBodyReader

java - 我如何将 Jersey 与 TomEE/openEJB 集成

c# - 使用什么库进行 XML SOAP 调度

java - 如何在java中获取 Activity 目录域名

java - 在Eclipse项目中找不到build.gradle

java - Jersey JSON 和日期