java.lang.NoSuchFieldError: VERSION_2_3_0 报错解决方案

java.lang.NoSuchFieldError: VERSION_2_3_0
    at org.apache.struts2.views.freemarker.FreemarkerManager.createConfiguration(FreemarkerManager.java:331)
    at org.apache.struts2.views.freemarker.FreemarkerManager.init(FreemarkerManager.java:282)
    at org.apache.struts2.views.freemarker.FreemarkerManager.getConfiguration(FreemarkerManager.java:269)
    at org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler.init(DefaultDispatcherErrorHandler.java:47)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:488)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4746)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5399)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
好吧,今天公司主管看到一个新闻说除了struts 2.3.20.2,2.3.24.2,2.3.28.1几个版本外其他版本都不安全,因而
	对旧版进行升级,这个项目不是maven项目,要把jar包一个一个替换,但是不是简单换了jar包就行了,有些旧版特性新版不
	一定支持,新版兼容到的旧系统其他jar不一定支持,所以升级也是一个技术活啊。。。简单解决一个百度上好像都没人讨论
	过的一个版本问题,这个版本问题的解决方案是要替换freemarker的包到freemarker-2.3.23.jar,也就是最高版本,同时
	也提醒自己遇到问题一定不要慌,要根据出错提示分步进行解决.技术上的问题都是有办法解决的,要安静的思考一下解决方案.

struts2更新版本操作有关事项备注

struts2更新版本操作有关事项备注,

更新主要jar包:struts2-convention-plugin-version,struts2-core-version, struts2-spring-plugin-version  

依赖jar包:xwork-core-version

报错应更新有关jar包: freemarker-verson,log4j-version

mevan实例:



<!-- struts2 所有jar包 -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <!--<version>2.2.1</version>-->
            <version>2.3.24.1</version>
            <exclusions>
                <exclusion>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <!--<version>2.2.1</version>-->
            <version>2.3.24.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-convention-plugin</artifactId>
            <!--<version>2.2.1</version>-->
            <version>2.3.24.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.23</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>

          </dependency>

xwork-core-version此包不更新涉及报错:

  <filter>
       <filter-name>StrutsPrepareFilter</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
    </filter>
    <filter>
       <filter-name>StrutsExecuteFilter</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
    </filter>

此配置文件 类丢失错误

freemarker-verson,log4j-version 包不更新涉及报错:

java.lang.NoSuchFieldError: VERSION_2_3_0
    at org.apache.struts2.views.freemarker.FreemarkerManager.createConfiguration(FreemarkerManager.java:331)
    at org.apache.struts2.views.freemarker.FreemarkerManager.init(FreemarkerManager.java:282)
    at org.apache.struts2.views.freemarker.FreemarkerManager.getConfiguration(FreemarkerManager.java:269)
    at org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler.init(DefaultDispatcherErrorHandler.java:47)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:488)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4746)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5399)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
 
时间: 2024-10-10 18:22:24

java.lang.NoSuchFieldError: VERSION_2_3_0 报错解决方案的相关文章

使用maven搭建Struts2+hibernate环境时出现java.lang.NoSuchFieldError: INSTANCE问题的解决方案

这是在使用 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.10.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <a

myeclipse 出现 “ java.lang.NoSuchMethodError:”的报错

jsp 调用dao包下面的findById()函数时出现如下报错: 百度 原因都说是 jar包有不同的版本导致的. 解决方法 . . . 看不懂. 瞎捣鼓了两个小时就放弃睡觉了. 第二天起床打开myeclipse 重新运行下,结果 . . . 错误消失了!! 简直惊呆了. 果然睡觉是第一生产力!! 但是 . . 后面在jsp 中调用其他函数又出现如上错误,,, 然后试探性的重启myeclipse ,再打开,错误又消失拉!!!! (^?ω?^ ) 新世界的大门向我打开了.

Java.lang.NoSuchFieldError: INSTANCE异常

解决方案: java.lang.NoSuchFieldError: INSTANCE异常. 1.jar包重复了. 2.版本还不相同,如果包的版本不同也会报相应的错,不过一般情况自己导入的jar包主要看导入有没有共同范围下有重复的jar. 仅供参考,大神高论,评论下方. Java.lang.NoSuchFieldError: INSTANCE异常

java.lang.NoSuchFieldError 异常原因

一般都是因为 class 或 jar 包重复 导致的 , 也有可能是编译器的问题. 我碰到的问题是,在项目api 接口jar包里定义了一个Config.java,然后在业务层service 项目 的相同包下 又定义了一个Config.java, 本地调试启动时不报错. 而部署到线上时报错,提示:java.lang.NoSuchFieldError , 找了半天没找到问题.后台在项目查找到重复的Config 才找到问题. 参考: 1.https://docs.oracle.com/javase/7

Hibernate java.lang.NoSuchFieldError: INSTANCE

在使用hibernate3.6.2是我遇到了一个有趣的错误java.lang.NoSuchFieldError: INSTANCEat org.hibernate.type.BasicTypeRegistry.<init>(BasicTypeRegistry.java:94)at org.hibernate.type.TypeResolver.<init>(TypeResolver.java:59)at org.hibernate.cfg.Configuration.<ini

java.lang.NoSuchFieldError: deferredExpression

使用JSTL的c:forEach标签JSP报如下错误: java.lang.NoSuchFieldError: deferredExpression at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178) at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166) at

Android java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/XX/R$id; or its superclasses

项目开发快到尾声,突然发现之前一个模块莫名其妙的奔溃了,我的内心也是奔溃的.以前一直都是好好的,也没去动过它,为啥会出现这样的问题呢? 下面我会根据自己的理解来看待问题 android是怎么根据id查找到控件的 首先,你在调用 findViewById 之前,你必然是在 activity 中设置了 setContentView, 或者在 Fragment 中重载了 onCreatedView 方法,对于 findViewById, 他只能使用在 view或者 activity 下,对于 view

用java运行Hadoop程序报错:org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.

用java运行Hadoop例程报错:org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.所写代码如下: package com.pcitc.hadoop; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.h

java.lang.NoSuchFieldError:INSTANCE

Java.lang.NoSuchFieldError: INSTANCE异常,可能是包重复了. 我遇到的情况是maven里引入了一个JAR,而我又在lib里面引入了这个jar,并且版本还不相同,就出了这个错.