Spring+Hibernate测试的时候无任何错误但是集成Struts2之后
[web] 2010-05-23 11:21:46,968 - com.opensymphony.xwork2.validator.ActionValidatorManagerFactory -21281 [http-8080-Processor25] INFO com.opensymphony.xwork2.validator.ActionValidatorManagerFactory - Detected AnnotationActionValidatorManager, initializing it...
java.lang.NullPointerException
at com.charity.web.action.user.UserAction.addUserLogin(UserAction.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:184).... applicationContext-dao.xml文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" http://www.springframework.org/schema/beans"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop=" http://www.springframework.org/schema/aop"
xmlns:tx=" http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="byName">
<bean name="userDao" class="com.charity.web.dao.user.impl.UserDaoImpl"/> applicationContext-service.xml文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" http://www.springframework.org/schema/beans"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop=" http://www.springframework.org/schema/aop"
xmlns:tx=" http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="byName">
<bean name="userService" class="com.charity.web.service.user.impl.UserServiceImpl"/> Struts2 <package name="web-user" extends="web-manager-default" namespace="/user">
<action name="toLogin">
<result name="success">/web/user/user.jsp</result>
<result name="error">/web/user/user.jsp</result>
</action>
<action name="addUserLogin" class="com.charity.web.action.user.UserAction" method="addUserLogin">
<result name="success">/web/user/user.jsp</result>
<result name="error">/web/user/user.jsp</result>
</action> UserAction类:package com.charity.web.action.user;import java.util.Date;import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.charity.web.action.BaseAction;
import com.charity.web.dataobject.user.User;
import com.charity.web.service.user.IUserService;public class UserAction extends BaseAction{
private IUserService userService;
private User user = new User();
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}
public IUserService getUserService() {
return userService;
} public void setUserService(IUserService userService) {
this.userService = userService;
}
/**
* 用户注册
* @return
*/
public String addUserLogin()throws Exception{
try{
userService.addUser(user);
return SUCCESS;
}catch(Exception e){
e.printStackTrace();
}
return ERROR;
}
// public static void main(String[] args) {
// BeanFactory bean = new ClassPathXmlApplicationContext("com/charity/web/config/spring/applicationContext-*.xml");
// IUserService userService = (IUserService) bean.getBean("userService");
// User user1=new User();
// user1.setState(0);
// user1.setCtime(new Date());
// user1.setUsername("admin");
// user1.setPassword("11111");
// try {
// userService.addUser(user1);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}
[web] 2010-05-23 11:21:46,968 - com.opensymphony.xwork2.validator.ActionValidatorManagerFactory -21281 [http-8080-Processor25] INFO com.opensymphony.xwork2.validator.ActionValidatorManagerFactory - Detected AnnotationActionValidatorManager, initializing it...
java.lang.NullPointerException
at com.charity.web.action.user.UserAction.addUserLogin(UserAction.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:184).... applicationContext-dao.xml文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" http://www.springframework.org/schema/beans"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop=" http://www.springframework.org/schema/aop"
xmlns:tx=" http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="byName">
<bean name="userDao" class="com.charity.web.dao.user.impl.UserDaoImpl"/> applicationContext-service.xml文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" http://www.springframework.org/schema/beans"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop=" http://www.springframework.org/schema/aop"
xmlns:tx=" http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="byName">
<bean name="userService" class="com.charity.web.service.user.impl.UserServiceImpl"/> Struts2 <package name="web-user" extends="web-manager-default" namespace="/user">
<action name="toLogin">
<result name="success">/web/user/user.jsp</result>
<result name="error">/web/user/user.jsp</result>
</action>
<action name="addUserLogin" class="com.charity.web.action.user.UserAction" method="addUserLogin">
<result name="success">/web/user/user.jsp</result>
<result name="error">/web/user/user.jsp</result>
</action> UserAction类:package com.charity.web.action.user;import java.util.Date;import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.charity.web.action.BaseAction;
import com.charity.web.dataobject.user.User;
import com.charity.web.service.user.IUserService;public class UserAction extends BaseAction{
private IUserService userService;
private User user = new User();
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}
public IUserService getUserService() {
return userService;
} public void setUserService(IUserService userService) {
this.userService = userService;
}
/**
* 用户注册
* @return
*/
public String addUserLogin()throws Exception{
try{
userService.addUser(user);
return SUCCESS;
}catch(Exception e){
e.printStackTrace();
}
return ERROR;
}
// public static void main(String[] args) {
// BeanFactory bean = new ClassPathXmlApplicationContext("com/charity/web/config/spring/applicationContext-*.xml");
// IUserService userService = (IUserService) bean.getBean("userService");
// User user1=new User();
// user1.setState(0);
// user1.setCtime(new Date());
// user1.setUsername("admin");
// user1.setPassword("11111");
// try {
// userService.addUser(user1);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}
java.lang.NullPointerException
at com.charity.web.action.user.UserAction.addUserLogin(UserAction.java:37)空指针,你给我看看错误所定的那行。
----
代码也不排版,好难看……
try{
//System.out.println(user.getUsername());
//System.out.println(userService);
userService.addUser(user);
return SUCCESS;
}catch(Exception e){
e.printStackTrace();
}
return ERROR;
}
package com.charity.web.action.user;import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.charity.web.action.BaseAction;
import com.charity.web.dao.user.IUserDAO;
import com.charity.web.dataobject.user.User;
import com.charity.web.service.user.IUserService;public class UserAction extends BaseAction{
private IUserService userService;
private User user = new User();
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}
public IUserService getUserService() {
return userService;
} public void setUserService(IUserService userService) {
this.userService = userService;
}
/**
* 用户注册
* @return
*/
public String addUserLogin()throws Exception{
try{
//System.out.println(user.getUsername());
//System.out.println(userService);
userService.addUser(user);
return SUCCESS;
}catch(Exception e){
e.printStackTrace();
}
return ERROR;
}
// public static void main(String[] args) {
// BeanFactory bean = new ClassPathXmlApplicationContext("com/charity/web/config/spring/applicationContext-*.xml");
// IUserService userService = (IUserService) bean.getBean("userService");
// User user1=new User();
// user1.setState(0);
// user1.setCtime(new Date());
// user1.setUsername("admin");
// user1.setPassword("11111");
// try {
// userService.addUser(user1);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }}
但是我配置了struts.properties中已经进行了托管,并且Struts2-spring-plugin.jar已经添加了
还是没用
下面是我struts.properties中的配置
#Created by JInto - www.guh-software.de
#Thu Nov 20 13:48:01 CST 2008
struts.action.extension=do
struts.configuration.xml.reload=true
#struts.custom.i18n.resources=resource/CommonResource
struts.devMode=true
struts.dispatcher.parametersWorkaround=false
struts.enable.SlashesInActionNames=false
#struts.freeer.wrapper.altMap=true
struts.i18n.encoding=GBK
struts.i18n.reload=false
struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper
struts.multipart.maxSize=5242880
struts.multipart.parser=jakarta
#struts.multipart.saveDir=
struts.objectFactory=spring
struts.objectFactory.spring.autoWire=name
struts.objectFactory.spring.useClassCache=true
struts.serve.static=true
struts.serve.static.browserCache=true
struts.tag.altSyntax=true
struts.date.format=yyyy-MM-dd
#struts.ui.templateSuffix=ftl
#struts.freeer.templatesCache=true
#struts.ui.theme=xhtml
#struts.url.http.port=8080
#struts.url.https.port=8443
#struts.xslt.nocache=false
我想它不能自动装配 直接给它手动装配了 OK
各位帮忙看看自动装配到底什么原因,为什么不能自动装配
有共同爱好的+我QQ290091072
共同学习,交流
没有注入你的对象存在?
不太可能吧
spring再强也不会主动注入呀
<bean id="userService" class="com.charity.web.service.user.impl.UserServiceImpl"/>
<bean name="addUserLogin" class="com.charity.web.action.user.UserAction">
<property name="userService">
<ref bean="userService"/>
</property>
</bean>
这样也没用,怎么已经注入了,还是不行
<bean name="addUserLogin" class="com.charity.web.action.user.UserAction"></bean>
我认为class="com.charity.web.action.user.UserAction" 这一句上并没有把这个action交给Spring初始化, 而是给了Struts和Spring的插件初始化.
问题解决了 是web.xml文件 那classpath 路径错了 汗