从Jersey REST Web应用程序引用外部类

时间:2016-04-14 14:59:31

标签: java jersey

我正在尝试创建RESTful API的简单示例。我使用Maven jersey-quickstart-webapp archtype来创建Jersey Web应用程序。在单独的项目中,我创建了一个简单的类:SimpleClass,它只有一个返回“hello”的方法。我试图在我的Web应用程序的方法中创建该类的实例(我使用默认的MyResource类)并调用其方法来获取“Hello”。我将带有SimpleClass的项目导出到JAR文件,并将该文件添加到Jersey项目的构建路径中,并导入了相关的包。 当我在本地服务器上运行Web应用程序并调用MyResource方法时,出现根本原因的错误(仅排在前几行):

java.lang.NoClassDefFoundError: Lorg/test/simple/SimpleClass;
    java.lang.Class.getDeclaredFields0(Native Method)
    java.lang.Class.privateGetDeclaredFields(Class.java:2583)
    java.lang.Class.getDeclaredFields(Class.java:1916)

所以,它找不到SimpleClass类。 我在这做错了什么?我真的很感激任何帮助! 谢谢, Yariv。

新信息:我尝试在没有Maven的情况下创建RESTful Web服务。我用一个简单的“Hello World”示例成功创建了项目,然后我尝试从另一个项目添加自己的类:我导入.jar,将其添加到构建路径,并在创建的Web服务中创建了一个类当对服务器进行GET时,我的类的实例。我的类碰巧包含(作为成员)其他类的实例,其中一个连接到MongoDB数据库,当我运行该服务时,我再次收到HTTP 500错误,如下所示: MultiException有2个例外。他们是:

1. java.lang.NoClassDefFoundError: com/mongodb/DBObject
2. java.lang.IllegalStateException: Unable to perform operation: create on org.notes.server.NotesServer

将MongoDB jar添加到Web项目没有帮助。我必须在这里遗漏一些大事。我应该怎么做才能调用我在其他项目中创建的代码(在那里有一组依赖项)?

我会感激任何我能得到的帮助,我无处可去......

1 个答案:

答案 0 :(得分:0)

我能够通过将所有相关JAR添加到部署程序集来解决所有这些问题(右键单击项目,单击Properties,然后选择Deployment Assembly并添加我的类所依赖的所有JAR,以及它自己的JAR)。 谢谢你的帮助,radai!