Java JSP异常-找不到类(tomcat)

Java JSP异常-找不到类(tomcat),java,jsp,tomcat,Java,Jsp,Tomcat,我正在一个新的Tomcat5.5服务器上设置一个现有的应用程序,该服务器连接到一个Postgres数据库(在DebianLenny上运行)。当我访问它时,我得到一系列堆栈跟踪,其根本原因如下: java.lang.ClassNotFoundException: java.sql.SQLClientInfoException org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)

我正在一个新的Tomcat5.5服务器上设置一个现有的应用程序,该服务器连接到一个Postgres数据库(在DebianLenny上运行)。当我访问它时,我得到一系列堆栈跟踪,其根本原因如下:

java.lang.ClassNotFoundException: java.sql.SQLClientInfoException
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
    java.lang.Class.forName(libgcj.so.90)
    java.lang.Class.initializeClass(libgcj.so.90)
    java.lang.Class.initializeClass(libgcj.so.90)
    org.postgresql.Driver.makeConnection(Driver.java:382)
    org.postgresql.Driver.connect(Driver.java:260)
    java.sql.DriverManager.getConnection(libgcj.so.90)
    jof.DBConnection.getConnection(DBConnection.java:81)
    jof.BeanInterfaceBase.db(BeanInterfaceBase.java:263)
    jof.BeanInterfaceBase.getStatement(BeanInterfaceBase.java:613)
    jof.HelpInterface.findByNaturalId(HelpInterface.java:81)
    jof.HelpInterface.findByNaturalId(HelpInterface.java:128)
    org.apache.jsp.index_jsp.getHelp(index_jsp.java:162)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:369)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    java.lang.reflect.Method.invoke(libgcj.so.90)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
    java.security.AccessController.doPrivileged(libgcj.so.90)
    javax.security.auth.Subject.doAsPrivileged(libgcj.so.90)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)

缺少什么?

这是一个猜测,但我看到java.sql.sqlclientnfoException是在Java6中引入的一个类。使用什么版本的Java启动Tomcat服务器?也许您是在Java6下开发的,但随后部署到运行Java5的Tomcat?

这是一个猜测,但我看到java.sql.SQLClientInfoException是Java6中引入的一个类。使用什么版本的Java启动Tomcat服务器?也许您是在Java6下开发的,但随后部署到运行Java5的Tomcat上

少了什么

确切地说:所提到的类在运行时类路径中丢失。它必须在运行时类路径中作为独立类文件(
*.class
)或打包在JAR文件(
*.JAR
)中。或者,您也可以将其实际路径添加到运行时类路径

默认情况下,webapp的
webapp/WEB-INF/lib
webapp/WEB-INF/classes
文件夹以及appserver的
appserver/lib
文件夹和Java的
JRE/lib
都包含在运行时类路径中

任何第三方webapp特定的JAR文件都应该放在
webapp/WEB-INF/lib
中。任何特定于webapp的类(servlet等)都应该放在
webapp/WEB-INF/classes
中。任何特定于appserver(或webapp common)的JAR文件都应该放在
appserver/lib
中。Java的
JRE/lib
文件夹必须保持不动

希望这有帮助

编辑:实际问题更糟:这确实是一个仅限Java 6的类。Tomcat显然是在Java5上运行的。查看
JAVA\u HOME
环境变量。它必须至少指向Java6JRE的根安装文件夹

少了什么

确切地说:所提到的类在运行时类路径中丢失。它必须在运行时类路径中作为独立类文件(
*.class
)或打包在JAR文件(
*.JAR
)中。或者,您也可以将其实际路径添加到运行时类路径

默认情况下,webapp的
webapp/WEB-INF/lib
webapp/WEB-INF/classes
文件夹以及appserver的
appserver/lib
文件夹和Java的
JRE/lib
都包含在运行时类路径中

任何第三方webapp特定的JAR文件都应该放在
webapp/WEB-INF/lib
中。任何特定于webapp的类(servlet等)都应该放在
webapp/WEB-INF/classes
中。任何特定于appserver(或webapp common)的JAR文件都应该放在
appserver/lib
中。Java的
JRE/lib
文件夹必须保持不动

希望这有帮助


编辑:实际问题更糟:这确实是一个仅限Java 6的类。Tomcat显然是在Java5上运行的。查看
JAVA\u HOME
环境变量。它必须至少指向Java 6 JRE的根安装文件夹。

谢谢,这非常有用。切换运行时确实解决了问题。谢谢,这非常有帮助。切换运行时确实解决了这个问题。
java.lang.ClassNotFoundException: java.sql.SQLClientInfoException