是jsp要用的class,包括bean。都可以放在lib里面么?再weblogic也是?

解决方案 »

  1.   

    原来是:
    在Tomcat环境下的jsp调用classes的class以及servlet,现在我把classes下的所有打成test.jar,还是放在classes下。但是运行jsp找不到class,该如何?
    急!谢先了!
      

  2.   

    放倒ROOT/WEB-INF/lib,目录下,没有这个目录手动创建。
      

  3.   

    在你的启动服务的批处理文件中加入
    set classpath=classes.jar
      

  4.   

    把JAR放在web-inf/lib目录下,没有的要创建,然后在CLASSPATH中添加JAR文件所在的目录,这样在程序运行是就可以找到所要的CLASS文件
      

  5.   

    真不知道这帮人是干什么吃的.jar放到WEB-INF/lib目录下,一切ok,不用设置classpath,tomcat会自动搜索的
      

  6.   

    还不行,我是用jakarta-tomcat-4.0.1
      

  7.   

    行的,我一直都是这样做,而且没有做到其他修改,tomcat自动找的你放心啦
      

  8.   

    就是像wes109(就这样,一个人流浪...) 说的一样。
    *.jar是放在WEB-INF/lib 下。你把错误信息贴出来吧。另外,BERNING(AMing)
    我在WIN2K中测试,Tomcat对系统中classpath指定的jar并不认。这可能是基于安全性的问题吧。
      

  9.   

    我不是放在ROOT/WEB-INF/lib,我在tomcat下建了一个与root并行的web(Webapp),我原来的class放在Webapp下的Webapp/WEB-INF/下的classes下
    ,现在我把jar放在Webapp/WEB-INF/lib/下,还不行!
      

  10.   

    在Tomcat,没有出错提示,ie出错提示:
    org.apache.jasper.JasperException: Unable to compile class for JSP
    D:\jakarta-tomcat-4.0.1\work\localhost\workflow\login_0005faction$jsp.java:3: Class user.check not found in import.
    import user.check;
           ^
    1 error at org.apache.jasper.compiler.Compiler.compile(Compiler.java:284)
    at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:546)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
    at java.lang.Thread.run(Thread.java:484)
      

  11.   

    user.check 应该是user.Check吧?
    或者如果check是个包名,就应该写成import user.check.*;
      

  12.   

    我想如果你在tomcat的根目录下创建一个Webapp就可能要修改配置文件,但是如果你是在tomcat/webapps目录下创建自己的文件夹就不用修改配置文件,你只要把你的jar包放到你手动创建的WEB-INF/lib目录下面,注意大小写也有要求。
      

  13.   

    如果是class文件,就应该放到WEB-INF/classes目录下另外to:Eddie(元直)不应该是你所说的吧??我记得我曾经写过发邮件的程序,我在系统classpath中加入mail.jar的包和atvication.jar包的路径,tomcat会认这个classpath中jar包的。(win2000 adv)
      

  14.   

    D:\jakarta-tomcat-4.0.1\webapps\webapp\*.jsp,
    原来D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\下放javabean
    现在我把javabean打成jar包,我的jsp怎么调用javabean?jar包该怎么用呢?急!!!!!!
      

  15.   

    打错了,是:
    D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\classes\下放
    jsp要用的javabean!
      

  16.   

    我也不行啊,同样的问题。具体如下:我的JAVABean工程文件叫MySQLConn.jpx里面有个package mysqlconn
    在package mysqlconn里有个public class DBConn开始用Class文件也不行,所以我就打包,打包也不行在JAVA里编译无错,并且打包成了MySQLConn.jar,入在了WEB-INF/lib下了。在IE里访问时,出错如下
    Error: 500
    Location: /TestBean.jsp
    Internal Servlet Error:org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    D:\Program Files\Apache\jakarta-tomcat\work\localhost_8080\_0002fTestBean_0002ejspTestBean_jsp_2.java:13: Package mysqlconn not found in import.
    import mysqlconn.*;
           ^
    -------------------
    | TestBean.jsp如下 |
    -------------------
    <%@ page contentType="text/html;charset=gb2312" %> 
    <%@ page import="mysqlconn.*"%>------------------
    | DBConn.java如下 |
    ------------------
    package mysqlconn;import java.sql.*;public class DBConn {String DBDriver = "org.gjt.mm.mysql.Driver";
    String ConnStr = "jdbc:mysql://localhost/DBNetBar?user=root;password=";
    Connection conn = null;
    ResultSet rs = null;  public DBConn() {
        try {
          Class.forName(DBDriver); //加载数据库驱动程序
        }
        catch (java.lang.ClassNotFoundException e) {
          System.err.println("DBconn (): " + e.getMessage());
        }
      }  public ResultSet executeQuery(String sql) {
        try {
          conn = DriverManager.getConnection(ConnStr); //与DBMS建立连接
          Statement stmt = conn.createStatement();
          rs = stmt.executeQuery(sql);
        }
        catch(SQLException ex) {
          System.err.println("aq.executeQuery: " + ex.getMessage());
        }
        return rs;
      }}
      

  17.   

    我也不行啊,同样的问题。具体如下:我的JAVABean工程文件叫MySQLConn.jpx里面有个package mysqlconn
    在package mysqlconn里有个public class DBConn开始用Class文件也不行,所以我就打包,打包也不行在JAVA里编译无错,并且打包成了MySQLConn.jar,入在了WEB-INF/lib下了。在IE里访问时,出错如下
    Error: 500
    Location: /TestBean.jsp
    Internal Servlet Error:org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    D:\Program Files\Apache\jakarta-tomcat\work\localhost_8080\_0002fTestBean_0002ejspTestBean_jsp_2.java:13: Package mysqlconn not found in import.
    import mysqlconn.*;
           ^
    -------------------
    | TestBean.jsp如下 |
    -------------------
    <%@ page contentType="text/html;charset=gb2312" %> 
    <%@ page import="mysqlconn.*"%>------------------
    | DBConn.java如下 |
    ------------------
    package mysqlconn;import java.sql.*;public class DBConn {String DBDriver = "org.gjt.mm.mysql.Driver";
    String ConnStr = "jdbc:mysql://localhost/DBNetBar?user=root;password=";
    Connection conn = null;
    ResultSet rs = null;  public DBConn() {
        try {
          Class.forName(DBDriver); //加载数据库驱动程序
        }
        catch (java.lang.ClassNotFoundException e) {
          System.err.println("DBconn (): " + e.getMessage());
        }
      }  public ResultSet executeQuery(String sql) {
        try {
          conn = DriverManager.getConnection(ConnStr); //与DBMS建立连接
          Statement stmt = conn.createStatement();
          rs = stmt.executeQuery(sql);
        }
        catch(SQLException ex) {
          System.err.println("aq.executeQuery: " + ex.getMessage());
        }
        return rs;
      }}
      

  18.   

    jar包放在:
    D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\lib\
    bean放在:
    D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\classes\
    jsp就放在:
    D:\jakarta-tomcat-4.0.1\webapps\webapp\如果不行就还有另外一个方案,你先试一下。没有lib就手动创建。
      

  19.   

    经坐在我边上的高人指点,问题搞定了,楼主跟我相同原因吧有包package的话,在WEB-INF的Class里要再创建一个目录,就是包名然后在JSP里
    <%@ page contentType="text/html;charset=gb2312" import = "mysqlconn.DBConn"
      import java.sql.*;<jsp:useBean id="DBconn1" scope="page" class="mysqlconn.DBConn"/>
      

  20.   

    哦,如果你是用Jcreater编译的话,你就不用手动来创建包名啦,Jcreater会自动帮你生成包名.sub包....的。如果你是用jdk来编译,那么就要自己手动创建包名.sub包名....class啦。
      

  21.   

    兄弟:
    我原来是D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\classes\放
    bean,user是包名,Check是class整个路径是:
    D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\classes\user\Check.class。原来的jsp能运行!
    现在我把class打成jar包,放在:
    D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\lib\下,jsp运行出错!这样不对么?郁闷!帮一把!
      

  22.   

    你怎么打包的??打包语句是否:jar cvf ??.jar user   (回车)??.jar是你的包名,user为你class的文件夹
      

  23.   

    在D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\classes\还有其他的
    bean我想classes下所有的bean包括D:\jakarta-tomcat-4.0.1\webapps\webapp\WEB-INF\classes\user\下的Check.class。我是用jar cvf webBean.jar classes/*.*
      

  24.   

    我现在能运行class,但打成jar包好像还不行
      

  25.   

    更复杂的测试后,还是不行我用winrar把这个jar释放到目录里就可以运行。而把这个目录变成jar就不行了。经多次尝试,并考虑到了子目录的问题。