gpt4 book ai didi

java - Jersey 资源类未导出

转载 作者:行者123 更新时间:2023-12-01 05:49:51 26 4
gpt4 key购买 nike

我使用嵌入式 Jetty 和 Jersey 来形成 REST API。

当我使用 Runnable JAR 向导从 Eclipse 导出时,如果我选择“将所需的库打包到生成的 JAR 中”,则当我运行 JAR 时,会收到错误

The ResourceConfig instance does not contain any root resource classes

如果我选择“将所需的库提取到生成的 JAR 中”,则不会出现错误,并且会检测到所有资源类。

由于许可问题,我无法使用 Extract 方法进行生产。

有人有任何修复或解决方法吗?

最佳答案

先决条件:请验证 web.xml 中的包名称以及代码中资源所在的包名称。如果两者相同,则按照解决方案进行操作:

解决方案1:导出 jar 时,请选中“添加目录条目”复选框 (Eclipse) 或 filesonly="false"(Ant)。这将添加目录条目,以便当 Jersey 代码访问资源类时它对其可见。

解决方案 2:您也可以指定类名称。仅指定包名称不起作用,但是当我像下面这样指定时,它对我有用。

<servlet>
<servlet-name>##SERVLETNAME##</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>##PACKAGENAME##</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
<param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.classnames</param-name>
<param-value>
##CLASSNAME1##,##CLASSNAME2##
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>##SERVLETNAME##</servlet-name>
<url-pattern>/##SERVLETURL##/*</url-pattern>
</servlet-mapping>

关于java - Jersey 资源类未导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com