我正在制作java web项目,并尝试使用mongodb。 但我发现了一个问题,
Mongo mongo = new Mongo("localhost", 27017)
当我在main方法中使用它时,它没问题。 但是当我在Servlet init()或doGet,doPost中使用它时 抛出异常,就像:
Allocate exception for servlet RegServlet
java.lang.ClassNotFoundException: com.mongodb.MongoException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
2011-5-19 20:44:39 org.apache.catalina.startup.HostConfig checkResources
答案 0 :(得分:7)
那是因为你没有包含一个包含类com.mongodb.MongoException
的jar(因此你有java.lang.ClassNotFoundException
的原因)。您的应用程序不需要运行MongoDB的jar。在WEB-INF/lib
文件夹或您的webapp服务器/容器lib
文件夹中添加相关的Mongo jar。