所以我试图让我的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.
因此它让我觉得它正在寻找合适的地方,但也许它只是找不到正确的东西?感谢您的帮助,我真的很感激
答案 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配置的一部分。或者,您可以将其保留,并在ResourceConfig
或Application
实施中声明包。
请阅读:deployment guide
要点:
<filter>...</filter>
是您可以放置过滤器和
的地方<servlet>...</servlet>
(我无法在您的web.xml中找到)是您应该将ServletContainer
插入的位置。
因为昨天我已经回复了this question,我建议您阅读手册并尝试一些示例项目,例如:
gradle & tomcat
jersey examples
你也会在那里找到一些web.xml。