在jsp中调用编写的.class时,出现以下错误:
....
The value for the useBean class attribute zbean.ljsjk is invalid
.....jsp文件中已编写了:
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="ljsjk" class="zbean.ljsjk" scope="page"/>
......是不是.class 文件存放的位置不对?

解决方案 »

  1.   

    可能.class源文件中没有加上
    package zbean;
    一行吧
      

  2.   

    有的啊,有的.java文件如下:
    package zbean; 
    import java.sql.*; class ljsjk
    {     public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver"; 
        public String sConnStr; 
        public long count; 
        String uid; 
        String pwd; 
        Connection conn=null; 
        ResultSet rs=null; 
        
        public ljsjk() 
        { 
           try 
           { 
             Class.forName(sdbdriver); 
           } 
           catch(java.lang.ClassNotFoundException e) 
           { System.err.println("Jodb():"+e.getMessage()); } 
        
        } 
    .........
      

  3.   

    你是在tomcat中作的吧?我估计你.class文件放的位置可能不对而导致服务器并没有找到它
      

  4.   

    在最前面加上 <%@ page import="zbean.*"%> 试试
      

  5.   

    是啊,应放在哪个目录下呢?我用的是TOMCAT5.0.28
      

  6.   

    用<%@ page import="zbean.*"%> 试了的,也是找不到
      

  7.   

    .java文件放在     \WEB-INF\classes  下
      

  8.   

    在TOMCAT中我定义了/MYJSP,绝对路径在E:\MYWEB\MYJSP,在这个目录下我创建了WEB-INF\classess目录,.class文件就放在这,对吗?
      

  9.   

    是 WEB-INF\classes  下面是zbean目录
      

  10.   

    用<%@ page import="zbean.*"%> ,现在出现的问题是:
    zbean.ljsjk is not public in zbean; cannot be accessed from outside package
    import zbean.ljsjk;
                 ^
    可是,我把该类设成是public时,编译出错:conn.java:5:class ljsjk is public,should be declared in a file named ljsjk.java
    public class ljsjk
      

  11.   

    找到了:
    The source file name is different from the name of the class defined in the file. Here the file name is Test and the class name is Hello. They must be the same.
      

  12.   

    这种写法写的不熟的很容易写错
    你就用另外一种方法嘛
    <%@ page import="zbean.ljsjk"%>然后在页面上new一个也无妨啊
      

  13.   

    hoho
    看来是我看一篇的速度太慢
    我看的过程中 都又有几贴啦 
    好像跟上面有的方法重复啦
      

  14.   

    现在调用时出错:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.t4_jsp._jspService(t4_jsp.java:67)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    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
      

  15.   

    我的程序很简单的,.java文件:
    package zbean; 
    import java.sql.*; 
    //import zbean.*; public class conn
    {     public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver"; 
        public String sConnStr; 
        public long count; 
        String uid; 
        String pwd; 
        Connection conn=null; 
        ResultSet rs=null; 
        
        public conn() 
        { 
           try 
           { 
             Class.forName(sdbdriver); 
           } 
           catch(java.lang.ClassNotFoundException e) 
           { System.err.println("Jodb():"+e.getMessage()); } 
        
        } 
    public void setDbDriver(String y) 

    sdbdriver=y; 
    } public void setConnStr(String x) 

    sConnStr=x; 
    uid="sa"; 
    pwd="770204"; 
    } public ResultSet execute(String sql) 

    rs=null; 
    try 

    conn=DriverManager.getConnection(sConnStr,uid,pwd); 
    Statement stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); 
    rs=stmt.executeQuery(sql); 

    catch(SQLException ex) 

    System.err.println("Jodb.execute():"+ex.getMessage()); 

    return rs; 
    } }.jsp文件:<%@ page contentType="text/html;charset=gb2312" %>
    <jsp:useBean id="conn" class="zbean.conn" scope="page"/>
    <jsp:setProperty name="conn" property="*"/>
    <html> 
    <head> 
    <title></title> 
    </head> 
    <% 
    //zbean.ljsjk ljsjk;
    java.sql.ResultSet rs; 
    conn.setConnStr("jdbc:odbc:ywk"); 
    conn.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver"); 
    rs=conn.execute("select * from lc_czy"); 
     
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%rs.close(); 
    %> 
    </body> 
    </html> 
      

  16.   

    另:
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");Statement st=cn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); ResultSet rs=st.executeQuery("SELECT * FROM lc_czy");//
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
     
    <%rs.close(); 
    st.close(); 
    cn.close(); 
    %> 
    </body> 
    </html> 
    运行时出现错误:
    [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序但用JAVA时是可以显示数据的啊?我该怎么做呢?
      

  17.   

    先说你上面那个,你的conn.java 有个构造方法,里面用到了变量 sdbdriver ,在你的jsp页面里,在<jsp:useBean  >那里就初始化你的对象了,可你那个时候还没有给 sdbdriver 附值,
    conn.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver"); 句才刚刚附值,导致你的 conn 对象并没有建立,所以导致空指针,sdbdriver 在未初始化前被使用
      

  18.   

    你下面那个程序改成这样看看,如果这样都不行就是连接有问题,我用的JDBC驱动连接的,对于你这个用 jdbc-odbc的方法我也给不了什么意见,因为我也不知道这样怎么连
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> <%
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");
    %> 
      

  19.   

    public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver"; 这已经定义了的
      

  20.   

    你数据库连接有问题,我没办法了,要不你用 JDBC 驱动的方式连?
      

  21.   

    jdbc驱动方式?举个例好吗?另:在CMD方式下JAVA按此联接可调出数据的啊,怎么会是数据库连接有问题呢?
      

  22.   

    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> <%
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");
    %>
    如果你连这两句都执行不了就是说明连接不成功,具体因为什么我不太清楚,要不你把Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");行改成
    Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204").newInstance();
    试试,
    jsp和数据库不是有四种连接方式么? jdbc驱动的方式就是第四种的那个,要配置classpath的
      

  23.   

    试试这个public class ljsjk 共有的才能可见吧!
      

  24.   

    定义一个ljsjk.java文件存这个类!
      

  25.   

    class文件放在web-inf里面,用的时候要import才可以
    <%@ page import="" %>