2014-12-06 2 views
0

Spring을 내 컨트롤러로 Struts와 통합하려고한다. Spring은 applicationContext.xml의 설정에 따라 빈을 초기화하지만 bean id를 struts.xml의 액션 클래스로 참조 할 때이를 감지 할 수 없다. 여기 여기Struts는 의존성 삽입을 위해 스프링에 의해 생성 된 bean id를 가진 액션 빈을 참조 할 수 없다.

<?xml version="1.0" encoding="UTF-8" ?> 
    <!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
    "http://struts.apache.org/dtds/struts-2.3.dtd"> 

    <struts> 

     <package name="default" extends="struts-default"> 

      <action name="getHome" class="baseAction" method="getToHome"> 
       <result name="success">/jsp/bcHome.jsp</result> 
      </action> 


     </package> 

    </struts> 

이 내 액션 클래스

import com.localityindia.bc.service.BaseService; 
import com.opensymphony.xwork2.ActionSupport; 

public class BaseAction extends ActionSupport { 

private BaseService baseService; 

public String getToHome(){ 
    System.out.println("baseService : "+baseService); 
    System.out.println("Inside Action... getting home page for you."); 
// baseService.getHomeDetails(); 
    return SUCCESS; 
} 

public void setBaseService(BaseService baseService) { 
    System.out.println("Setting srevice : "+baseService); 
    this.baseService = baseService; 
} 

} 

입니다

<?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

     <bean id="baseAction" class="com.localityindia.bc.action.BaseAction"> 
      <property name="baseService" ref="baseService" />   
     </bean> 

     <bean id="baseService" class="com.localityindia.bc.service.BaseServiceImpl"> 
      <property name="baseDao" ref="baseDao"/> 
     </bean> 

     <bean id="baseDao" class="com.localityindia.bc.dao.BaseDaoImpl" /> 

    </beans> 

applicationContext.xml 내 struts.xml이며,이 내 출력 :

Setting srevice : [email protected] 
Dec 06, 2014 11:13:20 PM org.springframework.web.context.ContextLoader initWebApplicationContext 
INFO: Root WebApplicationContext: initialization completed in 766 ms 
Dec 06, 2014 11:13:21 PM org.apache.catalina.core.StandardContext filterStart 
SEVERE: Exception starting filter struts2 
Unable to load configuration. - action -     file:/D:/personal_workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/BuyerComp   anion/WEB-INF/classes/struts.xml:10:65 
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:450) 
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 
at   org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFi lter.java:51) 
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) 
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: Unable to load configuration. - action -  file:/D:/personal_workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/BuyerComp anion/WEB-INF/classes/struts.xml:10:65 
at  com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) 
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:390) 
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437) 
... 14 more 
Caused by: Action class [baseAction] not found - action -  file:/D:/personal_workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/BuyerComp anion/WEB-INF/classes/struts.xml:10:65 
at  com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvi der.java:434) 
at  com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider .java:378) 
at  com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvide r.java:495) 
at  com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvi der.java:286) 
at  org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider .java:112) 
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:2 34) 
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) 
... 16 more 

Dec 06, 2014 11:13:21 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error filterStart 
Dec 06, 2014 11:13:21 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/BuyerCompanion] startup failed due to previous errors 
Dec 06, 2014 11:13:21 PM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
Dec 06, 2014 11:13:21 PM org.springframework.context.support.AbstractApplicationContext doClose 
INFO: Closing Root WebApplicationContext: startup date [Sat Dec 06 23:13:19 IST 2014]; root of     
Dec 06, 2014 11:13:21 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-nio-9090"] 
Dec 06, 2014 11:13:21 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-nio-8009"] 
Dec 06, 2014 11:13:21 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 5493 ms 

빈 아이디 참조 struts.xml에서 액션 매핑과 함께 작동 할 수 있도록 내가 무엇을해야하는지 제시하십시오

+0

클래스 패스에 스프링 플러그인을 추가합니다. –

+0

http://stackoverflow.com/a/26907334/1654265 –

답변

0
스트럿츠 2 액션이 인스턴스화 있도록 클래스 경로에서 스트럿츠 2 스프링 플러그인이 있어야합니다

봄.

+0

고마워, 나는 classpath에 추가 할 struts2-spring-plugin이 없다. – user2003910