我在一个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();没有问题。。
请问这是怎么回事..搞了很久都没搞好。。
不知道这样说清楚没
在使用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();没有问题。。
请问这是怎么回事..搞了很久都没搞好。。
不知道这样说清楚没
你的这行有什么啊
提示是找不到类啊!
里面调用了Dao的一个接口AdministratorDao
中的xxxxxxxx是包名加类名。lz要加上包名试试.
lz你是没有引包~还是在引用的时候写错名了?
我都说了我使用Main 方法直接new 对象没有问题..
但是在web中使用就出现这个问题..
所以不是包名和路径的问题...
这种提示就是指没有找到类 编译器是不会说谎
本地环境能运行说明本地环境路径没错,另外也说明了部署环境中无法找到对应类
去检查下tomcat webapps目录下 对应项目名\WEB-INF\classes下是否有该路径下的class文件
再作进一步判断
class文件都在里面没..
就是不知道为什么web服务没办法找到
但是application还是可以。。
因为我这个项目是自己手动部署的。没有拿web项目自动声称
所以结构还比较混乱
估计是你的输出文件夹之类的路径有问题。
不过我这个由于是团队开发。用的是svn
所以项目都是自己手动部署的
里面的文件很乱..