我想在tomcat web应用程序中引用一些第三方jar文件。我将此行添加到catalina.properties:
shared.loader = /家庭/奥利的/ dev /爪哇/ googleapi_samples / GDATA / JAVA / lib中/ *。罐
但我仍然收到此错误:
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/google/gdata/util/ServiceException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
我验证了com.google.gdata.util.ServiceException位于目录中的gdata-core-1.0.jar文件中:
/家庭/奥利的/ dev /爪哇/ googleapi_samples / GDATA / JAVA / lib中
我修改了catalina.properties后,我确实跳过了tomcat。
更新1: 我尝试将gdata-core-1.0.jar文件复制到 的/ var / lib中/ tomcat6中/ web应用/实施例/ WEB-INF / lib中 作为测试,但也没有解决问题。
更新2: 当我将jar文件直接复制到WEB-INF / lib目录时,它确实有效。我必须解决权限问题。但是当我使用shared.loader设置时,它仍然无法正常工作。我再次确认道路是正确的。
答案 0 :(得分:2)
我不确定这个,但有两个可能的原因:
shared.loader
中指定的路径中存在文件权限问题,可能与摆弄/WEB-INF/lib
时的问题相同。
您没有编辑您认为正在使用的Tomcat实例的catalina.properties
文件。例如,如果您从Eclipse内部运行Tomcat,则需要确保已配置Eclipse以接管Tomcat而不是使用工作空间元数据(Eclispe实际上基于Tomcat conf文件的副本运行)。要执行此操作,请取消部署/删除所有项目,双击Tomcat条目并在服务器位置部分中选择使用Tomcat安装。然后将使用Tomcat自己的/conf
文件夹中的配置文件。否则,您需要在Eclipse工作区的Servers
项目中对其进行编辑。
答案 1 :(得分:0)
您可以尝试使用file://
为路径添加前缀吗?
shared.loader=file:///home/ollie/dev/java/googleapi_samples/gdata/java/lib/*.jar