Tomcat+;Jersey生成org.glassfish.Jersey.server.ContainerException:java.lang.NoClassDefFoundError
我知道这个问题以前已经发布在这里了,但我似乎找不到我问题的答案 我试图让Jersey从“ProjectA”调用POJO(“PojoClass”)中的一个方法,该方法将从导入的类(“ForeignClass”)实例化一个对象,然后调用它自己的一个方法。。但我一直收到一个关于ForeignClass的NoClassDefFoundError错误。如果我将PojoClass转换为Main,它会毫无问题地找到ForeignClass并实例化对象。ForeignClass是否应该以某种方式导入到ProjectA的WEB-INF/lib中,以便Jersey识别它 ProjectA的web.xml:Tomcat+;Jersey生成org.glassfish.Jersey.server.ContainerException:java.lang.NoClassDefFoundError,java,rest,tomcat,jersey,noclassdeffounderror,Java,Rest,Tomcat,Jersey,Noclassdeffounderror,我知道这个问题以前已经发布在这里了,但我似乎找不到我问题的答案 我试图让Jersey从“ProjectA”调用POJO(“PojoClass”)中的一个方法,该方法将从导入的类(“ForeignClass”)实例化一个对象,然后调用它自己的一个方法。。但我一直收到一个关于ForeignClass的NoClassDefFoundError错误。如果我将PojoClass转换为Main,它会毫无问题地找到ForeignClass并实例化对象。ForeignClass是否应该以某种方式导入到Proje
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>PackageA</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>PackageA</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
包装
泽西岛休息服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
包装
1.
泽西岛休息服务
/休息/*
PojoClass:
import PackageB.ForeignClass;
@Path("/admin")
public class PojoClass {
@GET
public void test(){
ForeignClass fc = new ForeignClass();
fc.testRest(); // << this method just prints "test"
}
}
导入包b.ForeignClass;
@路径(“/admin”)
公开课{
@得到
公开无效测试(){
ForeignClass fc=新ForeignClass();
fc.testRest();//我认为您只是在PackageA
中注入了foreignClass
,但是在PackageB
中注入了
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>PackageA,PackageB</param-value>
</init-param>
jersey.config.server.provider.packages
包装A,包装B
我希望这对你有帮助。祝你一切顺利,编码愉快。我认为你只是在PackageA
中注入foreignClass
。你可以在web.xml
中尝试这段代码:
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>PackageA,PackageB</param-value>
</init-param>
jersey.config.server.provider.packages
包装A,包装B
我希望这对您有所帮助。祝您编码愉快。您能检查部署的webapps文件夹中是否存在ForeignClass吗?您是如何部署应用程序的?什么是“部署的webapps文件夹”?它不是唯一的WEB-INF/lib吗?我正在使用WEB.xml配置流程。这就是部署应用程序的意思吗?不,我是表示tomcat服务器所在的位置。它将有一个webapps文件夹,项目将部署在该文件夹下。所有的类文件都将出现在那里。(如果是战争)那么,你能检查一下ForeignClass的类文件是否存在吗?另外,你能粘贴ForeignClass的代码吗?哦,我知道了,谢谢。你能检查一下ForeignClass是否存在于deployed webapps文件夹中吗?你如何部署应用程序?什么是“deployed webapps folder”?它不仅仅是WEB-INF/lib吗?我正在使用WEB应用程序.xml来配置流程。这就是您所说的部署应用程序的意思吗?不,我指的是tomcat服务器所在的位置。它将有一个webapps文件夹,在该文件夹下部署您的项目。您的所有类文件都将在那里。(如果是战争)那么,你能检查一下你的ForeignClass类文件是否存在吗?另外,你能粘贴ForeignClass的代码吗?哦,我知道了,谢谢。我会检查一下的