CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

使用classloader时的奇怪问题

楼主woowo()2005-04-22 17:29:30 在 Java / J2SE / 基础类 提问

我在用this.getClass().getClassLoader().loadClass("classname")动态加载一个类,起初没有问题,一切正常.不过第二天我把web-info中的那个类删掉了,为了试验其他功能,然后考回去以后就出错了,从新build工程也不起作用.一到这行就报一个   java.lang.NoClassDefFoundError:com/......  
  具郁闷...   哪个高人给点意见吧 问题点数:20、回复次数:9Top

1 楼woowo()回复于 2005-04-22 17:40:37 得分 0

结构是这样的,包A中有一个接口interface,   需要加载的类classA是implements这个接口的.当我load那个class就回出这个错,   刚才我试了试,不去load他,而是直接interface   iface   =   new   classA.也会出这个error..   而且他报的NoClassDefFoundError后面也是说那个接口,而不是要加载的类.整一下午了,晕...   接口,被加载的类,加载他们的类,他们是放在三个不同的包中的.我快不行了...Top

2 楼woowo()回复于 2005-04-22 17:59:31 得分 0

疯了,我把用到那个接口的地方都去掉了,连那个接口的包都删了,能想到的classes都是从新build的,居然好报那个错,哭...还是在new那个原来实现那个接口的类的位置报,可是他现在已经   不是实现那个接口的了...Top

3 楼woowo()回复于 2005-04-22 18:07:21 得分 0

500   Servlet   Exception  
  java.lang.NoClassDefFoundError:   com/mywork/importinterface/UserInterface  
  at   java.lang.ClassLoader.defineClass1(Native   Method)  
  at   java.lang.ClassLoader.defineClass(ClassLoader.java:620)  
  at   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)  
  at   java.net.URLClassLoader.defineClass(URLClassLoader.java:260)  
  at   java.net.URLClassLoader.access$100(URLClassLoader.java:56)  
  at   java.net.URLClassLoader$1.run(URLClassLoader.java:195)  
  at   java.security.AccessController.doPrivileged(Native   Method)  
  at   java.net.URLClassLoader.findClass(URLClassLoader.java:188)  
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:306)  
  at   sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)  
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:251)  
  at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)  
  at   java.lang.Class.forName0(Native   Method)  
  at   java.lang.Class.forName(Class.java:242)  
  at   com.caucho.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:500)  
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:251)  
  at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)  
  at   java.lang.Class.forName0(Native   Method)  
  at   java.lang.Class.forName(Class.java:242)  
  at   com.caucho.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:500)  
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:251)  
  at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)  
  at   java.lang.Class.forName0(Native   Method)  
  at   java.lang.Class.forName(Class.java:242)  
  at   com.caucho.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:500)  
  at   java.lang.ClassLoader.loadClass(ClassLoader.java:251)  
  at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)  
  at   com.mywork.dataimport.ImportUser.<init>(ImportUser.java:17)  
  at   com.mywork.dataimport.ImportPeer.importData(ImportPeer.java:19)  
  at   _plugin_0operate__jsp._jspService(E:\works\mywork\plugin_operate.jsp:16)  
  at   com.caucho.jsp.JavaPage.service(JavaPage.java:75)  
  at   com.caucho.jsp.Page.subservice(Page.java:506)  
  at   com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)  
  at   com.caucho.server.http.Invocation.service(Invocation.java:315)  
  at   com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)  
  at   com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)  
  at   com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)  
  at   com.caucho.server.TcpConnection.run(TcpConnection.java:139)  
  at   java.lang.Thread.run(Thread.java:595)  
   
   
  --------------------------------------------------------------------------------  
  Resin   2.1.11   (built   Mon   Sep   8   09:36:19   PDT   2003)Top

4 楼ysbcg(Hummer)回复于 2005-04-22 18:22:47 得分 10

呵呵   重写类是要重启服务器的  
  你的所有class都要重新编译   生成  
  把生成的class拷贝到服务器  
  然后启动服务器Top

5 楼deadcode(树欲静,而风不止.)回复于 2005-04-22 19:43:49 得分 5

恩,对,应用程序服务器要重新启动~Top

6 楼superslash(开始用功学习)回复于 2005-04-22 20:10:31 得分 0

看看先Top

7 楼woowo()回复于 2005-04-25 09:12:27 得分 0

又开始上班了,不过还是没解决这个问题,看来要苦战了...可能不是程序的问题,也可能是jdk或者resin的问题吧,我把程序考到别的机器上就ok的.....Top

8 楼CAYU(中原)回复于 2005-04-25 09:15:54 得分 5

com/mywork/importinterface/UserInterface  
   
  UserInterface   是个接口吧!   接口是不能实例化的.必须是一个可以   new   创建的类Top

9 楼woowo()回复于 2005-04-26 18:31:43 得分 0

问题是解决了,不过很奇怪,我从新考了一个份resin,然后从新配置了一边就ok了,郁闷的问题Top

相关问题

  • 使用ADO写浮点数据字段时的奇怪问题
  • 使用java helloworld时出现的错误!好奇怪呀?
  • 使用QueryString时出现的奇怪问题,在线等待
  • 使用ODBC时遇到的一个奇怪问题
  • 很奇怪的问题.使用while 会超时报错!
  • ACCESS数据库在使用Update 时的奇怪现象
  • 在使用DataGrid时产生了一个奇怪的问题???盼解答!重谢
  • 使用monthview控件的时候,碰到一个奇怪的问题!!
  • 关于VC环境下使用map时出现的奇怪事情
  • ACCESS使用日期查询时碰到一个奇怪的问题,请看!

关键词

  • .net
  • 接口
  • jsp
  • service
  • server
  • caucho
  • 加载
  • httprequest
  • mywork
  • 类

得分解答快速导航

  • 帖主:woowo
  • ysbcg
  • deadcode
  • CAYU

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo