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

Reply via email to