SSH2 报错 java.lang.reflect.InvocationTargetException

报错详情:java.lang.reflect.InvocationTargetExceptionsun.reflect.NativeMethodAccessorImpl.... 报错详情:
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
dao代码:
public int loginUser(User user) {
String username = user.getUsername();
String password = user.getPassword();
String hql = "from User as u where u.username=? and u.password=?";
return getHibernateTemplate().find(hql, username, password).size();
}
service代码:
public boolean Login(User user) {
if (userDao.loginUser(user)==1) {
return true;
} else {
return false;
}
}
action代码:
public String execute() {
if (userService.Login(user)) {
return SUCCESS;
} else {
return ERROR;
}
}
我建了个测试类进行测试的时候 没有一点问题applicationContext.xml应该没有问题,但是整合struts2后 出现报错500 以下是测试类代码:
//@Test
public void testLogin() {
BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService=(UserService) factory.getBean("userService");
User u=new User();
u.setUsername("admin123");
u.setPassword("admin123");
boolean a=userService.Login(u);
System.out.println(a);
}
哪位大虾帮帮小弟。。这个问题困扰我很久了
用struts2 进行 保存的时候就没有问题。就是登录的时候 就会出来这样的错误 这应该跟struts2 整合spring没有问题
展开
 我来答
东哥zld
推荐于2018-04-14 · 机械自动化爱好者
东哥zld
机械自动化爱好者
采纳数:204 获赞数:17740
毕业不久,正在努力创造自己的骄傲

向TA提问 私信TA
展开全部
  发生原因:找到class相应路径下,对应的class文件没生成,有可能是某些class有错,导致没有完成编译,在clean后,经常发生。
  解决方法:properties属性里的 java compiler--> building -->编译通路的问题 -->abort build when build path errors occur / 构建传球、错误的发生时系统中断,前面的勾去掉。

ssh框架:
  SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
  集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
yeohcooller
2012-11-03
知道答主
回答量:49
采纳率:0%
帮助的人:34.6万
展开全部
目测下报错是Java的反射机制报错。估计是struts在调取get,set方法的时候出错,仔细检查下配置文件中的userService,并且确认下User中的get,set方法是自动生成的。
追问
这些都没有错,要不也不能在保存的时候成功了。
追答
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
我看到的这些信息反应给我的是java的反射机制报错。而在struts中用到反射机制的就是struts根据你的配置文件组装成get,set方法去赋值,去取值。至于是什么问题还是需要你再检查,要不你就贴出更详细的信息。可以把错误信息发我邮箱,百度账号@163.com,我根据具体报错信息在仔细分析下错误的原因。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白玉兰兰李杏花H
2012-11-03 · TA获得超过974个赞
知道小有建树答主
回答量:270
采纳率:100%
帮助的人:127万
展开全部
我觉得你dao应该这样写 试试
String username = user.getUsername();
String password = user.getPassword();
String hql = "from User as u where u.username=? and u.password=?";return (getHibernateTemplate().find(hql, new Object[]{username.password})).size()
追问
不行呀 还是报错跟以前一样。你能不能留下联系方式?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式