Do you have the: <constant name="struts.objectFactory" value="spring"/>
constant defined in your struts.xml? That should be all that's needed. (*Chris*) On Mon, Oct 15, 2012 at 2:53 PM, Davis, Chad <[email protected]> wrote: > > > > If you are using the Spring Framework with your App, you should be able > to > > define your TextProvider, with all it's dependencies, as a Spring Bean, > then > > when you define the <bean> in Struts use the Spring Bean ID instead of > using > > the full class name. Struts will use that Spring Bean in place of > creating a new > > one. > > (*Chris*) > > Okay. I'm following this path. I've got the Spring Plugin in place. And > it's working. I verified it by autowiring a trivial spring bean into one > of my actions. But when I try to create my custom textprovider and then > have it used as the framework default text provider I'm getting some > initialization problems. Here's what I'm doing: > > 1) spring config > > <bean id="customTextProvider" > class="com.mycompany.textsupport.MyTextProviderSupport"/> > > 2) struts.xml > > <bean type="com.opensymphony.xwork2.TextProvider" > name="myTextProvider" class="customTextProvider" scope="default" /> > <constant name="struts.xworkTextProvider" value="myTextProvider"/> > > But when I start the app I get the following error, thrown when the > framework tries to create the text provider bean. It seems like the > framework isn't recognizing that I'm referencing a spring bean with the > class attribute . . . > > 2012-10-15 15:41:39,763 ERROR [pool-2-thread-1]-commons.CommonsLogger: > Dispatcher initialization failed > Unable to load configuration. - bean - > file:/opt/apache-tomcat/catalina_base/imf/WEB-INF/classes/struts.xml:8:119 > 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) > at > org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:193) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) > at > org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382) > at > org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4638) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294) > at > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) > at > org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) > at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) > 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 bean: type:com.opensymphony.xwork2.TextProvider > class: customTextProvider - bean - > file:/opt/apache-tomcat/catalina_base/imf/WEB-INF/classes/struts.xml:8:119 > at > com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:243) > at > org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:102) > at > com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:210) > at > com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) > ... 17 more > Caused by: java.lang.ClassNotFoundException: customTextProvider > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) > at > com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152) > at > com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:214) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >

