Yes we had the same issue and solved it with maven the following way:
<dependency>
<groupId>struts</groupId>
<artifactId>struts</artifactId>
<version>1.2.9</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
By including Struts1 and excluding all of its dependencies. I am not
sure if we did some extra work, but this part was key to the solution.
Best regards,
The ictjob.be team.
On 02/08/2015 04:35 PM, Lukasz Lenart wrote:
You are basically mixing Struts 1 with Struts 2. Looks like jCaptcha
plugin needs Struts 1, that's why it requires:
ERROR finder.ClassFinder Unable to read class
[com.octo.captcha.module.struts.image.RenderImageCaptchaAction]
Could not load org/apache/struts/action/Action.class
and
ERROR finder.ClassFinder Error loading class
[com.octo.captcha.module.struts.CaptchaServicePlugin]
java.lang.NoClassDefFoundError: org/apache/struts/action/PlugIn
2015-02-07 7:08 GMT+01:00 Alireza Fattahi <afatt...@yahoo.com.invalid>:
The project uses jCaptcha 1.0, after upgrading from 2.3.16 to Struts 2.3.20 the
application could not start.
Our project is not using jCaptcha struts integration, so we do not have and
jCaptcha configuration ins strust.xml or web.xml, for instance we do **NOT**
have below line in struts.xml
<plug-in className="com.octo.captcha.module.struts.CaptchaServicePlugin"/>
I think some plugin management mechanism is changed so the struts 2.3.20 try to
find and start this plugin while 2.3.16 didn't.
The error is as below:
ERROR finder.ClassFinder Unable to read class
[com.octo.captcha.module.struts.image.RenderImageCaptchaAction]
Could not load org/apache/struts/action/Action.class - [unknown location]
at
com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:723)
at
com.opensymphony.xwork2.util.finder.ClassFinder.access$400(ClassFinder.java:71)
at
com.opensymphony.xwork2.util.finder.ClassFinder$InfoBuildingClassVisitor.extractSuperInterfaces(ClassFinder.java:770)
at
com.opensymphony.xwork2.util.finder.ClassFinder$InfoBuildingClassVisitor.visit(ClassFinder.java:757)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at
com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:718)
at
com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:113)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
at
org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
ERROR finder.ClassFinder Unable to read class
[com.octo.captcha.module.struts.VerifyCaptchaChallengeAction]
Could not load org/apache/struts/action/Action.class - [unknown location]
at
com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:723)
at
com.opensymphony.xwork2.util.finder.ClassFinder.access$400(ClassFinder.java:71)
at
com.opensymphony.xwork2.util.finder.ClassFinder$InfoBuildingClassVisitor.extractSuperInterfaces(ClassFinder.java:770)
at
com.opensymphony.xwork2.util.finder.ClassFinder$InfoBuildingClassVisitor.visit(ClassFinder.java:757)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at
com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:718)
at
com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:113)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
ERROR finder.ClassFinder Error loading class
[com.octo.captcha.module.struts.CaptchaServicePlugin]
java.lang.NoClassDefFoundError: org/apache/struts/action/PlugIn
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at
com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate.loadClass(ClassLoaderInterfaceDelegate.java:34)
at
com.opensymphony.xwork2.util.finder.ClassFinder$ClassInfo.get(ClassFinder.java:563)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder$3.test(PackageBasedActionConfigBuilder.java:613)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder$3.test(PackageBasedActionConfigBuilder.java:600)
at
com.opensymphony.xwork2.util.finder.ClassFinder.findClasses(ClassFinder.java:343)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:393)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
at
org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
at
org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
at
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
at
org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
Caused by: java.lang.ClassNotFoundException:
org.apache.struts.action.PlugIn
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 35 more
ERROR finder.ClassFinder Error loading class
[com.octo.captcha.module.struts.image.RenderImageCaptchaAction]
java.lang.NoClassDefFoundError: org/apache/struts/action/Action
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at
com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate.loadClass(ClassLoaderInterfaceDelegate.java:34)
at
com.opensymphony.xwork2.util.finder.ClassFinder$ClassInfo.get(ClassFinder.java:563)
at
com.opensymphony.xwork2.util.finder.ClassFinder.findClasses(ClassFinder.java:344)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:393)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
Caused by: java.lang.ClassNotFoundException:
org.apache.struts.action.Action
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 33 more
ERROR finder.ClassFinder Error loading class
[com.octo.captcha.module.struts.VerifyCaptchaChallengeAction]
java.lang.NoClassDefFoundError: org/apache/struts/action/Action
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at
com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate.loadClass(ClassLoaderInterfaceDelegate.java:34)
at
com.opensymphony.xwork2.util.finder.ClassFinder$ClassInfo.get(ClassFinder.java:563)
at
com.opensymphony.xwork2.util.finder.ClassFinder.findClasses(ClassFinder.java:344)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:393)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
at
org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
at
org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
Caused by: java.lang.ClassNotFoundException:
org.apache.struts.action.Action
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 33 more
ERROR finder.ClassFinder Error loading class
[com.octo.captcha.module.struts.VerifyCaptchaChallengeMethodAction]
java.lang.NoClassDefFoundError: org/apache/struts/action/Action
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
Caused by: java.lang.ClassNotFoundException:
org.apache.struts.action.Action
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 40 more
~Regards,
~~Alireza Fattahi
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org
--
*Thim Anneessens
IT Department *
ictjob