大体描述:
我有台oracle服务器a(同时还是web服务器),还有台web服务器b,在b上用连数据库测试程序测试连接a机,ok,如果把程序放到a上,那么报错.请问如何处理?
_____________________________________________________________________________________
细致描述:
我在a机上装了oracle和tomcat,这两者使用不同端口,在a机上放置一个连接c机oracle的jsp网页,显示正常,在b机上连接a机的oracle服务器(使用很简单的测试网页),jsp网页也显示正成,这证明单独的oracle和tomcat服务都是好的.我把b机上的测试网页发布到a上(这个网页是连a的oracle,就是本机连本机),出错.
这是为什么呢?
_______________________________________________________________________________
测试oracle连接程序
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
<html>   
<body>   
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();   
String url="jdbc:oracle:thin:@134.100.5.71:1521:webdb"; 
String user="jjm"; 
String password="jiajinming"; 
Connection conn= DriverManager.getConnection(url,user,password);   
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);   
String sql="select * from test";   
ResultSet rs=stmt.executeQuery(sql);   
while(rs.next()) {%>   
您的第一个字段内容为:<%=rs.getString(1)%>   
您的第二个字段内容为:<%=rs.getString(2)%>   
<%}%>   
<%out.print("数据库操作成功,恭喜你");%>   
<%rs.close();   
stmt.close();   
conn.close();   
%>   
</body>   
</html> 
_____________________________________________________
a机连a机的报错信息
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java/sql/Savepoint
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
at org.apache.jsp.jdbc_jsp._jspService(jdbc_jsp.java:79)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NoClassDefFoundError: java/sql/Savepoint
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:521)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:325)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:177)
at org.apache.jsp.jdbc_jsp._jspService(jdbc_jsp.java:50)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28

解决方案 »

  1.   

    检查一下a机器上有没有把jdbc驱动加载
      

  2.   

    <%rs.close();   
    stmt.close();   
    conn.close();   
    %>
    改为:
    <%
    if(rs !=null)
    rs.close();
    if(stmt !=null)   
    stmt.close();
    if(conn !=null)   
    conn.close();   
    %>
      

  3.   

    jdbc驱动绝对加载,因为我改一下ip连其他数据库显示成功.
    liaoxiaoqi(天崖) 的建议改了无用.
    我的程序如果分开(数据库和tomcat分开在不同的机器)是可以运行的.程序没有错误我现在怀疑是oracle自带的web服务器和tomcat冲突
    可否有高手解决?
      

  4.   

    继续测试了几下还是无从入手,是不是本机的tomcat使用oracle的jdk??
      

  5.   

    oracle驱动有好多个版本的,楼主要找到适合自己oracle版本的驱动
      

  6.   

    oracle版本都一样
    oracle 9.2.0.4.0 for linux 
    tomcat 5.0.28 for linux
      

  7.   

    javax.servlet.ServletException: java/sql/Savepoint
    这个是什么错误呢?
    我平时都没有见过
      

  8.   

    问你下,你的TOMCAT不是有要你设置端口吗,你设置没?没设置是用80端口的!你可以设置个其他的端口试试!如8080 ,1080.
      

  9.   

    我的所有软件是linux版本的,所以tomcat不用安装,直接解压后就可以用了
    我把tomcat设置到7777端口了,没设置以前是用8080,会和oracle冲突的,所以换到了7777了
    我在server.xml(/conf下的。文件名没背错吧?)中把8080改成了7777
      

  10.   

    我把server-minimal.xml
      <Service name="Catalina">
        <Connector port="7777" />
    也改了,还是不行,......求救
      

  11.   

    兄弟,解决了没有,我看了你说TOMCAT有可能用ORACLE的JDK,那是什么意思?而你的TOMCAT解压后直接可以用,那环境变量怎么设置的呢?我不太清楚这种环境下该怎么配,知道在WINDOWS里安装的时候是要你指定JDK的位置的!注册表里也专门有一项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\Java\Jvm =C:\j2sdk1.4.2_03\jre\bin\server\jvm.dll 不知道对你有没有帮助!
      

  12.   

    我的所有系统都是linux,我不用windows的,嘿嘿oracle自带jdk的,linux版本终于解决了,是我用了oracle的jdk的问题,jdk版本太高了,郁闷还是用老版本的好阿