struts1.2升级struts2.5.30问题汇总
严重: 配置应用程序监听器[org.apache.struts2.tiles.StrutsTilesListener]错误
java.lang.NoClassDefFoundError: org/apache/tiles/web/startup/AbstractTilesListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
----------注释掉web.xml中以下就解决
<!-- <listener><listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class></listener> --><!--<context-param><!-- <param-name>definitions-config</param-name><param-name>org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG</param-name><param-value>/WEB-INF/tiles.xml</param-value></context-param> -->
2 . java.lang.ClassCastException:
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter cannot be cast to jakarta.servlet.Filterat org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:250)at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
----需要下载Jakarta Servlet.jar包,因为tomcat10使用的不再是javax.servlet.jar包 -------直接切换到tomcat9即可
3.这个必须添加,否则启动tomcat会报错
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
从Struts2.1.3起废弃了ActionContextCleanUp过滤器,其相关功能在StrutsPrepareAndExecuteFilter实现,所以需要在web.xml中添加新过滤器---如下:
<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>4. java.lang.NoSuchMethodError: ognl.SimpleNode.isEvalChain(Lognl/OgnlContext
--------因为ognl.jar冲突, 把低版本删除 使用struts-core.jar自带的就行
5. 但删除ognl.jar之后又报错:NoClassDefFoundError: ognl/PropertyAccessor
------下载新版本ognl.jar 再放回去解决
6. ClassNotFoundException: javassist.ClassPool
-----添加javassist-3.28.0-GA.jar 即可
7. java.lang.NoClassDefFoundError: ognl/DefaultMemberAccess
----不要使用新版的 ognl,从 3.2 开始,会报各种乱七八糟的错误。建议使用 3.1.x 版本的
8. java.lang.NoClassDefFoundError: freemarker/template/Version
----换freemarker.2.3.31.jar 解决
9. org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://tiles.apache.org/tags-tiles]
-----jsp中引入了<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>,当访问这个页面时就会报上面这个错,
打开tiles-jsp-版本.jar在META-INF目录中找到了tld文件复制到WEB-INF目录下
10. org.apache.jasper.JasperException: 找不到URI:[/struts-tags]的taglib[s]
---同上, 打开struts2-core-2.5.30.jar找到了struts-tags.tld文件复制到WEB-INF目录下
11. javax.servlet.jsp.JspException: TilesContainer not initialized
-----添加以下到web.xml中即可
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
<listener>
<listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
</listener>12. org.apache.tiles.definition.DefinitionsFactoryException: I/O Error reading definitions
-----tiles.xml的头文件版本不对,我的jar包是tiles-core-3.0.8.jar,头文件需要修改为以下(2.0修改成3.0即可):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN""tiles-config_3_0.dtd">13. java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
--------添加asm-3.3.1.jar即可
所有*struts*.xml配置的extends="struts-default"改成extends="json-default"
14. [main] ERROR org.apache.struts2.dispatcher.Dispatcher - Dispatcher initialization failed
com.opensymphony.xwork2.inject.DependencyException: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.factory.ConverterFactory, name='default'] in public void com.opensymphony.xwork2.ObjectFactory.setConverterFactory(com.opensymphony.xwork2.factory.ConverterFactory).
----升级后的struts中配置的action出错,
升级struts2.5.30之后struts.xml不再默认从src下面读了,而是需要放到resource文件夹下,否则无法访问action
15. struts.xml中配置的<result name="xxx" type="redirect-action">需要改成redirectAction
16. Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.orm.hibernate3.HibernateTransactionManager$HibernateTransactionObject
[http-nio-8080-exec-3] ERROR org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception occurred during processing request: null
com.opensymphony.xwork2.XWorkException: null
---所有*validators.xml文件头的修改
原始内容:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator Config 1.0//EN" "" target="_blank">http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
修改后内容:
<!DOCTYPEvalidatorsPUBLIC "-//ApacheStruts//XWork Validator Config 1.0//EN" "" target="_blank">http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd">
17. 打开使用了<s:datetimepicker>标签的页面,报错信息:用前缀[s]导入的标记库中未定义标记[datetimepicker]
----解决办法:
1、将struts2-dojo-plugin-2.3.37拷贝到/web-inf/lib下,并解压把struts-dojo-tags.tld拷贝到/web-inf/下
2、在jsp文件中加入<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>
3、将<s:datetimepicker 标签改成上面设置的前缀<sx:datetimepicker
struts框架访问页面国际化乱码,是因为.globalMessages文件未被扫描到
--------需要把该文件放到src目录下
相关文章:
struts1.2升级struts2.5.30问题汇总
严重: 配置应用程序监听器[org.apache.struts2.tiles.StrutsTilesListener]错误java.lang.NoClassDefFoundError: org/apache/tiles/web/startup/AbstractTilesListenerat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader…...
电动汽车充放电的优化调度(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
《JeecgBoot系列》 如何设计表单实现“下拉组件二级联动“ ? 以省市二级联动为例
《JeecgBoot系列》 如何设计表单实现"下拉组件二级联动" ? 以省市二级联动为例 一、准备字典表 1.1 创建字典表 CREATE TABLE sys_link_table ( id int NULL, pid int NULL, name varchar(64) null );1.2 准备数据 idpidname1全国21浙江省32杭州市42宁波市51江苏…...
数学小课堂:数学的线索(从猜想到定理再到应用的整个过程)
文章目录 引言I 勾股定理1.1 勾三股四弦五1.2 数学和自然科学的三个本质差别1.3 总结引言 从猜想到定理再到应用的整个过程是数学发展和体系构建常常经历的步骤。 I 勾股定理 勾股定理: 直角三角形两条直角边的平方之和等于斜边的平方,这个定理在国外都被称为毕达哥拉斯定理…...
Collecting package metadata (current_repodata.json): failed
一、问题描述 安装anaconda之后,想创建环境,用了下面这段代码: conda create -n pytorch python3.7 conda创建环境报错了,报了如下这一堆: Collecting package metadata (current_repodata.json): failedUnavailab…...
几十亿工单表,查询优化案例
前言: 之前在某大型保险公司担任技术经理,负责优化话务系统模块,由于系统已经运行10年之久,尤其在话务系统中,沉积了几十亿的话务信息表,业务人员反馈,话务系统历史数据查询部分已经完全查询不动࿰…...
LabVIEW应用程序(EXE)无法正确动态调用插件
LabVIEW应用程序(EXE)无法正确动态调用插件正在构建一个应用程序并使用插件架构,以便可以动态调用将来创建的VI(插件)。应用程序在LabVIEW开发环境中可以正常运行,但不能作为可执行程序运行。运行可执行文件…...
到了35岁,软件测试职业发展之困惑如何解?
35岁,从工作时间看,工作超过10年,过了7年之痒,多数IT人都已经跳槽几次。 35岁,发展比较好的软件测试人,已经在管理岗位(测试经理甚至测试总监)或已经成为测试专家或测试架构师。发展…...
Google Guice 3:Bindings(1)
1. 序言 上一篇博客,《Google Guice 2:Mental Model》,讲述了Guice的建模思路:Guice is a map Guice官网认为:binding是一个对象,它对应Guice map中的一个entry,通过创建binding就可以向Guice …...
学习国家颁布的三部信息安全领域法律,理解当前工作中的信息安全合规要求
目录三部信息安全领域的法律文件三部法律的角色定位与联系三部法律的适用范围三部法律的主要履职部门三部法律条文章节结构中的共性三部法律中的一些次重点章节网络安全法的重点章节数据安全法的重点章节个人信息保护法的重点章节关于工业和信息化部行政执法项目清单三部信息安…...
LeetCode_Python_二分查找算法
二分查找算法要求二分查找过程如何更新左右边界实例type1:常规记录中间元素type2:取跳出循环后的左或右边界算法要求 顺序存储结构元素大小有序 二分查找过程 将元素排序;将中间位置记录的这个元素与目标元素比较; 2.1 如果相同&a…...
功能测试三年,是时候做出改变了
前言 测试行业3年多经验,学历大专自考本科,主要测试方向web,PC端,wap站,小程序公众号都测试过,app也测过一些,C端B端都有,除功能外,接口性能也有涉猎,但是不…...
图扑孪生工厂流水线组态图可视化
前言 2018 年,世界经济论坛(WEF)携手麦肯锡公司共同倡议并正式启动了全球“灯塔工厂网络项目”(Lighthouse Network),共同遴选率先应用工业革命 4.0 技术实现企业盈利和持续发展的创新者与示范者。这就使得工厂系统需要对各流水线及生产运行成本方面进行…...
车机开发—【CarService启动流程】
汽车架构:车载HAL是汽车与车辆网络服务之间的接口定义(同时保护传入的数据): 车载HAL与Android Automotive架构: Car App:包括OEM和第三方开发的AppCar API:内有包含CarSensorManager在内的AP…...
webpack中require.context的运用
1. 作用: 利用require创建context (上下文),来告知在编译时具体需要导入哪些模块(即:批量处理待导入模块进行导入); webpack会在构建的时候解析代码中的require.context() (实际上是webpack的方法,vue一般基于webpack…...
2023“Java基础-中级-高级”面试集结,已奉上我的膝盖
Java基础(对象线程字符接口变量异常方法) 面向对象和面向过程的区别? Java 语言有哪些特点? 关于 JVM JDK 和 JRE 最详细通俗的解答 Oracle JDK 和 OpenJDK 的对比 Java 和 C的区别? 什么是 Java 程序的主类&…...
RabbitMQ之发布确认
发布确认 1 发布确认原理 生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之后,broker就会发送一个确认给生产者(包含消息的唯一 ID),这就使得生产者知道消…...
一文读懂函数编程及其工作原理
微软MVP实验室研究员 马洪喜-微软 MVP 19年研发经验 云计算咨询顾问专家 容器云及基础架构云技术专家 DevOps 及微服务咨询专家 什么是函数编程 我先用通俗的大白话给大家解释一下函数(Functions, Function as a Service, FaaS)的几个要点,这样看后面示例时才不…...
WSO2 apim Subscribe to an API
WSO2 apim Application Subscribe to an API1. Published an Api2. Subscribe to an API using Key Generation Wizard3. Subscribe to an existing application4. AwakeningWSO2安装使用的全过程详解: https://blog.csdn.net/weixin_43916074/article/details/127987099. Offi…...
聚类(性能度量)
文章目录聚类(性能度量)外部指标例1内部指标例2聚类(性能度量) 对数据集 D{x1,x2,...,xm}D\{x_1,x_2,...,x_m\}D{x1,x2,...,xm} ,假定通过聚类给出的簇划分为 C{C1,C2,...,Ck}C\{C_1,C_2,...,C_k\}C{C1,C2,…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
