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

Reply via email to