2013-10-18 42 views
0

我有一個Web應用程序,要求用戶輸入一個URL。然後,我使用Selenium 2.35.0,從URL中獲取源代碼。服務器端使用硒的例外

我創建了一個dynamic web project一切設置正確(包括所有硒罐),但我的應用程序拋出異常

Oct 18, 2013 2:49:48 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [DiffReportServlet] in context with path   [/PBSkyScraper] threw exception [Servlet execution threw an exception] with root cause 
java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
at com.PB.automation.servlets.DiffReportServlet.doGet(DiffReportServlet.java:38) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
at java.lang.Thread.run(Thread.java:680) 

這是工作流程是什麼:

用戶輸入URL和提交。調用一個servlet實際上完成了抓取源代碼的工作。我無法理解的原因,因爲如果我嘗試它作爲一個Java應用程序運行,而不是在服務器上運行相同的作品。

下面是代碼

有人可以解釋原因,並提供了一些解決這個?我使用Tomcat作爲服務器。

+0

任何人爲某些線索? –

回答

1

我在探索this answer後終於摸索出了自己。我只是刪除獨立的罐子,並使用selenium-java-2.35.0.jar移動lib文件夾到WEB-INF目錄,一切工作正常。