我正在尝试创建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项目没有帮助。我必须在这里遗漏一些大事。我应该怎么做才能调用我在其他项目中创建的代码(在那里有一组依赖项)?
我会感激任何我能得到的帮助,我无处可去......
答案 0 :(得分:0)
我能够通过将所有相关JAR添加到部署程序集来解决所有这些问题(右键单击项目,单击Properties,然后选择Deployment Assembly并添加我的类所依赖的所有JAR,以及它自己的JAR)。 谢谢你的帮助,radai!