供应静态内容Jetty Jersey Gradle

时间:2014-09-17 14:05:34

标签: java gradle jersey jetty jersey-2.0

所以我试图让我的Jetty / Jersey / Gradle设置为index.html,它在src/main/webapp/static/处于默认网址时。我的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.

因此它让我觉得它正在寻找合适的地方,但也许它只是找不到正确的东西?感谢您的帮助,我真的很感激

1 个答案:

答案 0 :(得分:1)

例外意味着: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.注意到你,那件球衣无法找到服务类。

您的init-param jersey.config.server.provider.packages未设置正确,另外在错误的位置。那就是你想要添加资源CLASSES的地方,之后,泽西希望找到一些@Path注释,也就是那里的资源类。
正如我所说,它在错误的地方 - 它不是过滤器的一部分,它的ServletContainer servlet配置的一部分。或者,您可以将其保留,并在ResourceConfigApplication实施中声明包。

请阅读:deployment guide

要点:

<filter>...</filter>

是您可以放置​​过滤器和

的地方
<servlet>...</servlet>

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

因为昨天我已经回复了this question,我建议您阅读手册并尝试一些示例项目,例如:

gradle & tomcat
jersey examples

你也会在那里找到一些web.xml。