How do you declare the action in struts.xml? Because instead full class name you must use the id from applicationContext.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="secure" namespace="/secure" extends="default"> <action name="user" class="userAction"> <result>success.jsp</result> </action> </package> </struts> https://struts.apache.org/docs/spring-plugin.html#SpringPlugin-InitializingActionsfromSpring Regards -- Ćukasz + 48 606 323 122 http://www.lenart.org.pl/ 2015-09-05 14:47 GMT+02:00 Chris <crisp...@gmx.us>: > I'm trying to use the Spring plugin to inject a dependency into my action at > runtime. This is the first time I've tried this with Struts2 so I may have > missed something but I'm stumped because I can see the dependency is injected > but then the object is later null when I need to use it. Here is my action > class code: > > public class UserRegisterAction extends ActionSupport { > private User user = new User(); > > @Override > public String execute(){ > getUserService().saveUser(user); > return "success"; > } > > public UserServiceImpl getUserService(){ > return userService; > } > > UserServiceImpl userService; > public void setUserService(UserServiceImpl us){ > this.userService = us; > } > } > > Using the debugger I can see that upon startup "setUserService is called and > this.userService is set, so the injection appears to be working ok, but when > the execute method is called when the page is submitted userService is null. > I'm quite new to Struts but I don't understand how my userService is being > null. > > Can anyone see what I am missing? > > > My applicationContext: > > > <?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:tx="http://www.springframework.org/schema/tx" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://www.springframework.org/schema/tx > http://www.springframework.org/schema/tx/spring-tx.xsd" > default-autowire="byName"> > > <bean > class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" > /> > > <bean > class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> > > <bean id="entityManagerFactory" > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> > <property name="dataSource" ref="dataSource" /> > <property name="jpaVendorAdapter"> > <bean > class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> > <property name="databasePlatform" > value="org.hibernate.dialect.MySQL5Dialect" /> > <property name="database" value="MYSQL" /> > <property name="showSql" value="true" /> > </bean> > </property> > </bean> > > <bean id="dataSource" > class="org.springframework.jdbc.datasource.DriverManagerDataSource"> > <property name="driverClassName" value="org.gjt.mm.mysql.Driver" /> > <property name="url" value="jdbc:mysql://127.0.0.1:3306/baseapp" /> > <property name="username" value="xxxxxx" /> > <property name="password" value="xxxxxx" /> > </bean> > > <bean id="transactionManager" > class="org.springframework.orm.jpa.JpaTransactionManager"> > <property name="entityManagerFactory" ref="entityManagerFactory" /> > </bean> > > <tx:annotation-driven transaction-manager="transactionManager" /> > > <bean id="userService" class="com.xxxxx.service.UserServiceImpl" > scope="prototype"/> > > <bean id="userAction" class="com.xxxxxx.action.UserRegisterAction"> > <property name="userService" ref="userService"/> > </bean> > > </beans> > > > Web.xml: > > <?xml version="1.0" encoding="UTF-8"?> > <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee > http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" > version="3.1"> > > <filter> > <filter-name>struts2</filter-name> > > <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> > </filter> > > <filter-mapping> > <filter-name>struts2</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > <listener> > > <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> > </listener> > </web-app> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org