0

I'm adding struts2-convention-plugin-2.3.24.1.jar into my struts2 project(simple homework), then had an error of "SEVERE: Exception starting filter [struts2] java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor". My webpage is working properly before moving into the JAR file. And when I move the JAR file, the error disappears.

I have successful imported some classes in the JAR file when i add it into project. My struts version is 2.3.24.1, here is some libs in WEB-INFO

servlet-api.jar
struts2-convention-plugin-2.3.24.1.jar
struts2-core-2.3.24.1.jar
xwork-core-2.3.24.1.jar

error code

SEVERE: Exception starting filter [struts2]
java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:416)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:397)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:354)
    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)
    ....................................................very much lines
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
    ... 44 more

struts.xml

<?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>
  <!-- language -->
  <constant name="struts.custom.i18n.resources" value="resource" />

    <package name="mytest" namespace="/" extends="struts-default">
        <interceptors>
            <interceptor name="mytestinterceptor" class="interceptor.MyInterceptor"></interceptor>
            <interceptor-stack name="myintstack">
                <interceptor-ref name="defaultStack"/>  
                <interceptor-ref name="mytestinterceptor"></interceptor-ref>    
            </interceptor-stack>
        </interceptors>
        <action name="LoginAction"  class="action.LoginAction">
            <interceptor-ref name="myintstack"></interceptor-ref>
            <result name="success">success.jsp</result>
            <result name="input">login.jsp</result>
        </action>
    </package>
</struts>

The teacher asked us to implement the login web in two ways, one is the XML configuration method(struts.xml), and the other is the annotation method(@Action...). I had implemented XML method, and this error is encountered when I use the annotation method.

GuikunChen
  • 60
  • 8
  • Besides that searching for the plugin name and the exception will provide the answer (e.g., https://www.mkyong.com/java/java-lang-classnotfoundexception-org-objectweb-asm-type/), minor forensics will find you the exact same answer. – Dave Newton May 06 '19 at 13:08
  • The following is the list of libraries that you should implement https://stackoverflow.com/a/23222976/573032 – Roman C May 08 '19 at 20:23

0 Answers0