可能是你的resin配置有问题,打开resin下的conf,把resin.conf(文本编辑器打开)下的classpath改一下试试,我在http://www.csdn.net/expert/topic/109/109651.shtm中有回答

解决方案 »

  1.   

    我用的是Tomcat,需要怎样设置呢?
      

  2.   

    把javabean的目录加到classpath中去
    autoexec.bat
      

  3.   

    jsp下出现问题一般都是路径问题,江南说的对,你把路径设置一下,默认情况下,你所写的jsp
    文件与bean是要放在某个目录下,要放到自己的目录下,往往要设置。
      

  4.   

    你的javabean有问题。 请贴出你的最简单的javabean。
      

  5.   

    <jsp:useBean id="jdbc" scope="session" class="hem.config" />
    <%
    String Driver     = jdbc.getLocalDriverStr();  /* Jdbc驱动器 */
    String URL        = jdbc.getURL(jdbc.getLocalURLStr());

    String Driver_R   = jdbc.getRemoteDriverStr();  /* Jdbc驱动器 */
    String URL_R      = jdbc.getURL(jdbc.getRemoteURLStr());
    %>
    package hem;import java.io.*;
    import java.sql.*;public class config
    {
        String RemoteURLLine;
        String LocalURLLine;
        
        String LocalProtocol;
        
        Connection LocalConnection = null;
        Statement LocalStatement = null;
        Connection RemoteConnection = null;
        Statement RemoteStatement = null;    
        boolean UseRemoteDB = true;
        
        public config()
            throws  Exception
        {
        
         try
         {
           FileInputStream inDatabase = new FileInputStream("/config.txt");
           int databaseBytes = inDatabase.available();
           byte inDatabaseBuf[] = new byte[databaseBytes];
           int bytesRead = inDatabase.read(inDatabaseBuf,0,databaseBytes);
           LocalURLLine = new String(inDatabaseBuf);
         }
         catch(Exception e)
         {
           System.out.println("本地数据库配置文件出错!");
         }
         try
         {
           FileInputStream inDatabase = new FileInputStream("/remote.txt");
           int databaseBytes = inDatabase.available();
           byte inDatabaseBuf[] = new byte[databaseBytes];
           int bytesRead = inDatabase.read(inDatabaseBuf,0,databaseBytes);
           RemoteURLLine = new String(inDatabaseBuf);
         }    
         catch(Exception e)
         {
           System.out.println("远程数据库配置文件出错!");
         }
            /*
            FileReader IniFile;
            IniFile = new FileReader("/interhome.conf");
            LineNumberReader IniFileLines = new LineNumberReader(IniFile);
            RemoteURLLine = IniFileLines.readLine();
            LocalURLLine = IniFileLines.readLine();
         */
            //String Driver   = "oracle.jdbc.driver.OracleDriver";  /* Jdbc驱动器 */
            //String Driver = GetSubString(LocalURLLine,1,',');
            //Class.forName(Driver);
        }
        
        public String getLocalDriverStr()
        {
            return GetSubString(LocalURLLine,1,',');
        }        
        
        public String getLocalProtocol()
        {
            return GetSubString(LocalURLLine,2,',');
        } 
        
        public String getRemoteDriverStr()
        {
            return GetSubString(RemoteURLLine,1,',');
        }
        
        public String getLocalURLStr()
        {
            return LocalURLLine;
        }            public String getRemoteURLStr()
        {
            return RemoteURLLine;
        }            public Connection getRemoteConnection()
            throws SQLException
        {
            return DriverManager.getConnection(getURL(RemoteURLLine));
        }            public Connection getLocalConnection()
            throws SQLException
        {
            return DriverManager.getConnection(getURL(LocalURLLine));
        }            public String getURL(String DBURLLine)
        {
            
            String driver;
            String Protocol;
            String Port;
            String Host;
            String User;
            String Password;
            String Database;        Protocol = GetSubString(DBURLLine,2,',');
            Host = GetSubString(DBURLLine,3,',');
            Port = GetSubString(DBURLLine,4,',');
            
            Database = GetSubString(DBURLLine,5,',');
            User = GetSubString(DBURLLine,6,',');
            Password = GetSubString(DBURLLine,7,',');
            
            return Protocol+":"+User+"/"+Password+"@"+Host+":"+Port+":"+Database;
        }    String GetSubString(String DBURLLine,int SubNum, char Sign)
        {
            int CharIndex1 = -1;
            int CharIndex2 = 0;        for (int i = 1; i<SubNum; i++)
            {
                CharIndex2 = DBURLLine.indexOf(Sign,CharIndex1+1);
                CharIndex1 = CharIndex2;
            }        CharIndex2 = DBURLLine.indexOf(Sign,CharIndex1+2);
            if (CharIndex2 < 0)
            {
                return DBURLLine.substring(CharIndex1+1);
            }
            else
            {
                return DBURLLine.substring(CharIndex1+1,CharIndex2);
            }
        }
            
        public void OpenDB()
            throws Exception
        {
            if (LocalConnection == null)
            {
                LocalConnection = getLocalConnection();
                if (LocalStatement != null) 
                    LocalStatement.close();
                LocalStatement = LocalConnection.createStatement();
            }
            LocalConnection.setAutoCommit(true);        if (UseRemoteDB)
            {
                if (RemoteConnection == null)
                {
                    RemoteConnection = getRemoteConnection();
                    if (RemoteStatement != null)
                        RemoteStatement.close(); 
                    RemoteStatement = RemoteConnection.createStatement();
                }
                RemoteConnection.setAutoCommit(true);  
            }
        }
        
        public void OpenDBCommit()
            throws Exception
        {
            if (LocalConnection == null)
            {
                LocalConnection = getLocalConnection();
                if (LocalStatement != null) 
                    LocalStatement.close();
                LocalStatement = LocalConnection.createStatement();
            }
            LocalConnection.setAutoCommit(false);        if (UseRemoteDB)
            {
                if (RemoteConnection == null)
                {
                    RemoteConnection = getRemoteConnection();
                    if (RemoteStatement != null)
                        RemoteStatement.close(); 
                    RemoteStatement = RemoteConnection.createStatement();
                }
                RemoteConnection.setAutoCommit(false);
            }
        }
        
        public void CloseDB()
            throws Exception
        {
            if (LocalStatement != null)
            {
                LocalStatement.close();
                LocalStatement = null;
            }
            if (LocalConnection != null)
            {
                LocalConnection.close();
                LocalConnection = null;
            }        if (UseRemoteDB)
            {
                if (RemoteStatement != null)
                {
                    RemoteStatement.close();
                    RemoteStatement = null;
                }
                if (RemoteConnection != null)
                {
                    RemoteConnection.close(); 
                    RemoteConnection = null; 
                }
            }
        }
        
    }
    主要原因是 scope="session" ,或者你的 javabean有问题
      

  6.   

    设置了classpath之后,编译倒是通过了,可是运行时有新的问题,页面显示:
    Internal Servlet Error:javax.servlet.ServletException: javadb/tjavabean
    at java.lang.Throwable.(Throwable.java:96)
    at java.lang.Exception.(Exception.java:44)
    at javax.servlet.ServletException.(ServletException.java:161)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:399)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
    at org.apache.tomcat.core.Handler.service(Handler.java:286)
    at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
    at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
    at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
    at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
    at java.lang.Thread.run(Thread.java:498)Root cause: 
    java.lang.NoClassDefFoundError: javadb/tjavabean
    at java.lang.Class.newInstance0(Native Method)
    at java.lang.Class.newInstance(Class.java:254)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.load(JspServlet.java:116)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:154)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:164)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
    at org.apache.tomcat.core.Handler.service(Handler.java:286)
    at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
    at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
    at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
    at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
    at java.lang.Thread.run(Thread.java:498)
    ---------------------------------------------------------------------
    下面是我的代码:
    ---------------------------------------------------------------------
    javadb.jsp:<%@ page contentType = "text/html; charset=gb2312" %>
    <%@ page import = "java.sql.*" %>
    <jsp:useBean id="jdb" class="javadb.tjavabean" scope="session" />
    <html>
       <head>
          <title>Test JDBC for MS SQL Server</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
       </head>
       <body>
          <!--
          <jsp:plugin type="applet" code="TJavaDB.class" codebase="/jsp" jreversion="1.3" width="200" height="75">
          <jsp:fallback> Your browser doesn't support OBJECT or EMBED </jsp:fallback>
          </jsp:plugin>
          -->
          <%
             /*
             ResultSet rset = jdb.Execute();
             out.println( rset );
             //*/
             jdb.Execute();
          %>
       </body>
    </html>
    -----------------------------------------------------------
    tjavabean.java:package javadb;import java.io.*;public class tjavabean
    {
       public tjavabean()
       {
          MsgStr = "HelloWorld !";
       }
       
       public void Execute()
       {
          System.out.println( MsgStr );
       }
       
       String MsgStr;
    }
      

  7.   

    终于找到了解决的办法:
    对于tomcat 3.2.1,如果是在用户自建的虚拟目录中使用JSP,则这个虚拟目录中应该建立WEB-INF目录,然后再WEB-INF目录下建立classes目录,JSP中需要引用的JavaBeans的class都存放于这个WEB-INF\classes目录中