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没有问题 展开
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没有问题 展开
展开全部
发生原因:找到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。
解决方法: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。
展开全部
目测下报错是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,我根据具体报错信息在仔细分析下错误的原因。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得你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()
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()
追问
不行呀 还是报错跟以前一样。你能不能留下联系方式?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询