java - Unable to load bean using Struts convention plugin -
i want use annotation based config instead of xml based. struts has convention plugin kind of thing.
so removed struts.xml
file in main/resources
, added plugin dependency, put annotations on actions , tried run project on server (tomcat 7).
when server starts, next stacktrace:
unable load configuration. - bean - jar:file:/d:/eclipseworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/shop/web-inf/lib/struts2-convention-plugin-2.3.24.jar!/struts-plugin.xml:32:155 @ com.opensymphony.xwork2.config.configurationmanager.getconfiguration(configurationmanager.java:70) @ org.apache.struts2.dispatcher.dispatcher.getcontainer(dispatcher.java:967) @ org.apache.struts2.dispatcher.dispatcher.init_preloadconfiguration(dispatcher.java:435) @ org.apache.struts2.dispatcher.dispatcher.init(dispatcher.java:479) @ org.apache.struts2.dispatcher.ng.initoperations.initdispatcher(initoperations.java:74) @ org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter.init(strutsprepareandexecutefilter.java:57) @ org.apache.catalina.core.applicationfilterconfig.initfilter(applicationfilterconfig.java:279) @ org.apache.catalina.core.applicationfilterconfig.getfilter(applicationfilterconfig.java:260) @ org.apache.catalina.core.applicationfilterconfig.<init>(applicationfilterconfig.java:105) @ org.apache.catalina.core.standardcontext.filterstart(standardcontext.java:4854) @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5546) @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1575) @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1565) @ java.util.concurrent.futuretask.run(futuretask.java:266) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ java.lang.thread.run(thread.java:745) caused by: unable load bean: type:org.apache.struts2.convention.actionconfigbuilder class:org.apache.struts2.convention.packagebasedactionconfigbuilder - bean - jar:file:/d:/eclipseworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/shop/web-inf/lib/struts2-convention-plugin-2.3.24.jar!/struts-plugin.xml:32:155 @ com.opensymphony.xwork2.config.providers.xmlconfigurationprovider.register(xmlconfigurationprovider.java:247) @ org.apache.struts2.config.strutsxmlconfigurationprovider.register(strutsxmlconfigurationprovider.java:102) @ com.opensymphony.xwork2.config.impl.defaultconfiguration.reloadcontainer(defaultconfiguration.java:240) @ com.opensymphony.xwork2.config.configurationmanager.getconfiguration(configurationmanager.java:67) ... 17 more caused by: java.lang.noclassdeffounderror: com/opensymphony/xwork2/util/finder/defaultclassfinder @ java.lang.class.getdeclaredconstructors0(native method) @ java.lang.class.privategetdeclaredconstructors(class.java:2663) @ java.lang.class.getdeclaredconstructors(class.java:2012) @ com.opensymphony.xwork2.config.providers.xmlconfigurationprovider.register(xmlconfigurationprovider.java:237) ... 20 more caused by: java.lang.classnotfoundexception: com.opensymphony.xwork2.util.finder.defaultclassfinder @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1720) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571) ... 24 more черв. 02, 2015 7:52:31 pm org.apache.catalina.core.standardcontext filterstart severe: exception starting filter struts2 unable load configuration. - bean - jar:file:/d:/eclipseworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/shop/web-inf/lib/struts2-convention-plugin-2.3.24.jar!/struts-plugin.xml:32:155 @ org.apache.struts2.dispatcher.dispatcher.init(dispatcher.java:493) @ org.apache.struts2.dispatcher.ng.initoperations.initdispatcher(initoperations.java:74) @ org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter.init(strutsprepareandexecutefilter.java:57) @ org.apache.catalina.core.applicationfilterconfig.initfilter(applicationfilterconfig.java:279) @ org.apache.catalina.core.applicationfilterconfig.getfilter(applicationfilterconfig.java:260) @ org.apache.catalina.core.applicationfilterconfig.<init>(applicationfilterconfig.java:105) @ org.apache.catalina.core.standardcontext.filterstart(standardcontext.java:4854) @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5546) @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1575) @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1565) @ java.util.concurrent.futuretask.run(futuretask.java:266) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ java.lang.thread.run(thread.java:745) caused by: unable load configuration. - bean - jar:file:/d:/eclipseworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/shop/web-inf/lib/struts2-convention-plugin-2.3.24.jar!/struts-plugin.xml:32:155 @ com.opensymphony.xwork2.config.configurationmanager.getconfiguration(configurationmanager.java:70) @ org.apache.struts2.dispatcher.dispatcher.getcontainer(dispatcher.java:967) @ org.apache.struts2.dispatcher.dispatcher.init_preloadconfiguration(dispatcher.java:435) @ org.apache.struts2.dispatcher.dispatcher.init(dispatcher.java:479) ... 14 more caused by: unable load bean: type:org.apache.struts2.convention.actionconfigbuilder class:org.apache.struts2.convention.packagebasedactionconfigbuilder - bean - jar:file:/d:/eclipseworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/shop/web-inf/lib/struts2-convention-plugin-2.3.24.jar!/struts-plugin.xml:32:155 @ com.opensymphony.xwork2.config.providers.xmlconfigurationprovider.register(xmlconfigurationprovider.java:247) @ org.apache.struts2.config.strutsxmlconfigurationprovider.register(strutsxmlconfigurationprovider.java:102) @ com.opensymphony.xwork2.config.impl.defaultconfiguration.reloadcontainer(defaultconfiguration.java:240) @ com.opensymphony.xwork2.config.configurationmanager.getconfiguration(configurationmanager.java:67) ... 17 more caused by: java.lang.noclassdeffounderror: com/opensymphony/xwork2/util/finder/defaultclassfinder @ java.lang.class.getdeclaredconstructors0(native method) @ java.lang.class.privategetdeclaredconstructors(class.java:2663) @ java.lang.class.getdeclaredconstructors(class.java:2012) @ com.opensymphony.xwork2.config.providers.xmlconfigurationprovider.register(xmlconfigurationprovider.java:237) ... 20 more caused by: java.lang.classnotfoundexception: com.opensymphony.xwork2.util.finder.defaultclassfinder @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1720) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571) ... 24 more
the thing struts has xwork-core
dependency, lies in classpath, somehow tomcat can't find it. these dependencies pom.xml
:
<dependencies> <dependency> <groupid>javax.servlet</groupid> <artifactid>javax.servlet-api</artifactid> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>jsp-api</artifactid> <version>2.0</version> <scope>provided</scope> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>jstl</artifactid> <version>1.1.1</version> <scope>runtime</scope> </dependency> <dependency> <groupid>taglibs</groupid> <artifactid>standard</artifactid> <scope>runtime</scope> <version>1.1.1</version> </dependency> <dependency> <groupid>taglibs</groupid> <artifactid>c</artifactid> <version>1.1.1</version> <scope>runtime</scope> <type>tld</type> </dependency> <dependency> <groupid>taglibs</groupid> <artifactid>fmt</artifactid> <version>1.1.1</version> <scope>runtime</scope> <type>tld</type> </dependency> <dependency> <groupid>taglibs</groupid> <artifactid>fn</artifactid> <version>1.1.1</version> <scope>runtime</scope> <type>tld</type> </dependency> <!-- struts --> <dependency> <groupid>org.apache.struts</groupid> <artifactid>struts2-core</artifactid> <version>2.3.20</version> </dependency> <dependency> <groupid>org.apache.struts</groupid> <artifactid>struts2-convention-plugin</artifactid> <version>2.3.24</version> </dependency> <dependency> <groupid>com.opensymphony</groupid> <artifactid>xwork</artifactid> <version>2.1.3</version> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.6</version> </dependency> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupid>org.mockito</groupid> <artifactid>mockito-all</artifactid> <version>1.9.5</version> <scope>test</scope> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version>1.2.16</version> </dependency> <dependency> <groupid>javax.mail</groupid> <artifactid>mail</artifactid> <version>1.4.7</version> <scope>provided</scope> </dependency> <!-- front-end --> <dependency> <groupid>com.google.code.gson</groupid> <artifactid>gson</artifactid> <version>2.2.4</version> </dependency> <dependency> <groupid>org.webjars</groupid> <artifactid>jquery</artifactid> <version>2.1.3</version> </dependency> <dependency> <groupid>org.webjars</groupid> <artifactid>datatables</artifactid> <version>1.10.5</version> </dependency> <dependency> <groupid>org.webjars</groupid> <artifactid>mustachejs</artifactid> <version>0.8.2</version> </dependency> <dependency> <groupid>com.jgeppert.struts2.bootstrap</groupid> <artifactid>struts2-bootstrap-plugin</artifactid> <version>2.0.1</version> </dependency> </dependencies>
what did wrong?
if maven dependencies struts2-core
has dependency on xwork-core
, should downloaded when build app. diffrent versions of plug-ins make plugin stop working or breaks on startup. should use following artifacts
<dependency> <groupid>org.apache.struts</groupid> <artifactid>struts2-core</artifactid> <version>2.3.24</version> </dependency> <dependency> <groupid>org.apache.struts</groupid> <artifactid>struts2-convention-plugin</artifactid> <version>2.3.24</version> </dependency>
Comments
Post a Comment