我在一个servlet里面使用反射去调用后台业务的一个接口..
   在使用tomcat去启动servlet调用的时候
   Class.forName("xxxxxxxx").newInstance();
出现java.lang.NoClassDefFoundError: com/yht/IPB/server/dao/AdministratorDao
at com.yht.IPB.server.services.AdministratorServiceImpl.<init>(AdministratorServiceImpl.java:16)但是我检查了我的命名都没有问题...
于是我在 result=serviceMethod.invoke(instance, null);时候不使用newInstance()返回的OBJECT
我直接TemplateService instance=new TemplateService();
也出现同样的异常..都是在这里出错..但是我不使用web启动。。自己使用Application Main方法去调用TemplateService instance=new TemplateService();没有问题。。
请问这是怎么回事..搞了很久都没搞好。。
不知道这样说清楚没

解决方案 »

  1.   

    at com.yht.IPB.server.services.AdministratorServiceImpl. <init>(AdministratorServiceImpl.java:16) 
    你的这行有什么啊
    提示是找不到类啊!
      

  2.   

    AdministratorServiceImpl是我的业务接口
    里面调用了Dao的一个接口AdministratorDao 
      

  3.   

    Class.forName("xxxxxxxx").newInstance(); 
    中的xxxxxxxx是包名加类名。lz要加上包名试试.
      

  4.   

    在AdministratorServiceImpl中调用AdministratorDao时没有找到AdministratorDao~
    lz你是没有引包~还是在引用的时候写错名了?
      

  5.   

    都没有...路径和包名都没有问题....
    我都说了我使用Main 方法直接new 对象没有问题..
    但是在web中使用就出现这个问题..
    所以不是包名和路径的问题...
      

  6.   

    急阿哪位来帮忙阿就是在web运行环境下没办法实例出来但是在Main方法中就是可以运行出来...
      

  7.   

    java.lang.NoClassDefFoundError: com/yht/IPB/server/dao/AdministratorDao 
    这种提示就是指没有找到类 编译器是不会说谎
    本地环境能运行说明本地环境路径没错,另外也说明了部署环境中无法找到对应类
    去检查下tomcat webapps目录下 对应项目名\WEB-INF\classes下是否有该路径下的class文件
    再作进一步判断
      

  8.   

    呵呵。。我检查了我的classes里面..
    class文件都在里面没..
    就是不知道为什么web服务没办法找到
    但是application还是可以。。
    因为我这个项目是自己手动部署的。没有拿web项目自动声称
    所以结构还比较混乱
      

  9.   

    你用的是tomcat还是别的?开发工具eclipse还是什么?
    估计是你的输出文件夹之类的路径有问题。
      

  10.   

    tomcat+eclipse撒
    不过我这个由于是团队开发。用的是svn
    所以项目都是自己手动部署的
    里面的文件很乱..