急救,登录时就报错,但系统可以正常运行

本文记录了Struts2框架在处理特定表达式时遇到的Ognl异常问题,详细展示了异常堆栈跟踪,并分析了可能的原因是devMode设置为true所导致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

72063 [28472268@qtp-20738936-9] WARN com.opensymphony.xwork2.ognl.OgnlValueStack - Caught an exception while evaluating expression 'topfunctiontitle' against value stack
Caught an Ognl exception while getting property topfunctiontitle - Class: ognl.OgnlRuntime
File: OgnlRuntime.java
Method: getMethodValue
Line: 935 - ognl/OgnlRuntime.java:935:-1
 at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:111)
 at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
 at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
 at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
 at ognl.SimpleNode.getValue(SimpleNode.java:210)
 at ognl.Ognl.getValue(Ognl.java:333)
 at ognl.Ognl.getValue(Ognl.java:310)
 at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:196)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:229)
 at org.apache.struts2.views.freemarker.ScopesHashModel.get(ScopesHashModel.java:70)
 at freemarker.core.Environment.getGlobalVariable(Environment.java:1062)
 at freemarker.core.Environment.getVariable(Environment.java:1048)
 at freemarker.core.Identifier._getAsTemplateModel(Identifier.java:70)
 at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
 at freemarker.core.BuiltIn$has_contentBI._getAsTemplateModel(BuiltIn.java:666)
 at freemarker.core.BuiltIn$has_contentBI.isTrue(BuiltIn.java:678)
 at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.MixedContent.accept(MixedContent.java:92)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.Macro$Context.runMacro(Macro.java:168)
 at freemarker.core.Environment.visit(Environment.java:602)
 at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.MixedContent.accept(MixedContent.java:92)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.Environment.process(Environment.java:189)
 at freemarker.template.Template.process(Template.java:237)
 at org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:187)
 at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
 at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
 at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
 at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
 at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
 at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
 at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
 at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
 at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
 at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: ognl.OgnlException: topfunctiontitle [java.lang.NullPointerException]
 at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:935)
 at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)
 at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)
 at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.getProperty(ObjectAccessor.java:17)
 at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
 at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:106)
 ... 51 more
72063 [28472268@qtp-20738936-9] WARN com.opensymphony.xwork2.ognl.OgnlValueStack - NOTE: Previous warning message was issued due to devMode set to true.
72063 [28472268@qtp-20738936-9] WARN com.opensymphony.xwork2.ognl.OgnlValueStack - Caught an exception while evaluating expression 'topfunctiontitle' against value stack
Caught an Ognl exception while getting property topfunctiontitle - Class: ognl.OgnlRuntime
File: OgnlRuntime.java
Method: getMethodValue
Line: 935 - ognl/OgnlRuntime.java:935:-1
 at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:111)
 at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
 at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
 at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
 at ognl.SimpleNode.getValue(SimpleNode.java:210)
 at ognl.Ognl.getValue(Ognl.java:333)
 at ognl.Ognl.getValue(Ognl.java:310)
 at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:196)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:229)
 at org.apache.struts2.dispatcher.StrutsRequestWrapper.getAttribute(StrutsRequestWrapper.java:82)
 at org.apache.struts2.views.freemarker.ScopesHashModel.get(ScopesHashModel.java:85)
 at freemarker.core.Environment.getGlobalVariable(Environment.java:1062)
 at freemarker.core.Environment.getVariable(Environment.java:1048)
 at freemarker.core.Identifier._getAsTemplateModel(Identifier.java:70)
 at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
 at freemarker.core.BuiltIn$has_contentBI._getAsTemplateModel(BuiltIn.java:666)
 at freemarker.core.BuiltIn$has_contentBI.isTrue(BuiltIn.java:678)
 at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.MixedContent.accept(MixedContent.java:92)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.Macro$Context.runMacro(Macro.java:168)
 at freemarker.core.Environment.visit(Environment.java:602)
 at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.MixedContent.accept(MixedContent.java:92)
 at freemarker.core.Environment.visit(Environment.java:209)
 at freemarker.core.Environment.process(Environment.java:189)
 at freemarker.template.Template.process(Template.java:237)
 at org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:187)
 at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
 at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
 at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
 at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
 at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
 at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
 at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
 at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:326)
 at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
 at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
 at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: ognl.OgnlException: topfunctiontitle [java.lang.NullPointerException]
 at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:935)
 at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)
 at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)
 at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.getProperty(ObjectAccessor.java:17)
 at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
 at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:106)
 ... 52 more

<think>我们正在处理用户的问题:使用老毛桃Win11系统镜像还原出现的DWM故障问题,具体表现为还原失败、DWM故障、会话已关闭,需要查看事件日志。根据用户提供的引用资料,我们可以提取以下相关信息:引用[1]:关于远程桌面会话结束的问题,但用户当前问题不是远程桌面,而是系统还原后的DWM故障,不过可能涉及系统组件问题。引用[2]:提到了Windows11游戏兼容性优化,其中有一条关于硬盘节能模式的注册表修改(EnableControllerIdlePowerManagement=0),但用户的问题似乎不直接相关。另外提到了启用Windows沙盒环境,但用户问题也不直接相关。引用[3]:Windows11中dwm.exe占用内存过高的解决方法,用户通过禁用集成显卡(但重启后问题依旧)然后升级显卡驱动解决了问题。这提示我们DWM故障可能与显卡驱动有关。引用[4]:Win11系统提示找不到dwmcorei.dll文件的解决办法,推荐使用DLLEscort软件修复DLL文件,或者修复运行库。用户问题具体描述:使用老毛桃Win11系统镜像还原出现DWM故障,导致还原失败,并出现“会话已关闭”的错误。需要查看事件日志。分析:DWM(DesktopWindowManager)是Windows的桌面窗口管理器,负责视觉效果。其故障通常与显卡驱动、系统文件损坏或缺失有关。用户是在系统还原过程中出现的,可能是还原过程中驱动不兼容或系统文件损坏。解决方案思路:1.检查事件日志:具体查看系统日志和应用日志,找出错误来源。2.显卡驱动问题:尝试更新或回滚显卡驱动(包括集成显卡和独立显卡)。3.系统文件修复:使用系统自带的工具如SFC和DISM修复系统文件。4.缺失DLL文件:如果提示缺失dwmcorei.dll等文件,可以尝试从正常系统复制或使用修复工具。5.注册表调整:根据引用[2],调整硬盘节能模式可能对性能有帮助,但不确定是否直接相关。另外,引用[3]中禁用集成显卡后问题暂缓解,但重启后问题依旧,最终通过升级驱动解决,所以驱动是关键。步骤:第一步:查看事件日志按Win+R,输入eventvwr.msc,打开事件查看器。在Windows日志->系统和Windows日志->应用程序中查找错误事件,特别是来源为ApplicationError,DesktopWindowManager,Winlogon等的事件。记录事件ID和描述。第二步:尝试进入安全模式重启系统,在启动按F8(或Shift+重启)进入安全模式,看是否能够正常进入。如果安全模式下正常,则可能是驱动或第三方软件冲突。第三步:更新或回滚显卡驱动1.在安全模式下,打开设备管理器(devmgmt.msc),展开“显示适配器”,右键点击显卡,选择“更新驱动程序”或“回退驱动程序”(如果之前更新过)。2.如果无法进入安全模式,可以尝试在正常启动失败后,系统会自动进入恢复环境,然后选择“疑难解答”->“高级选项”->“启动设置”->“重启”->按F4进入安全模式。3.也可以使用老毛桃PE系统,在PE环境下使用驱动管理工具备份或更新驱动。第四步:修复系统文件在安全模式或PE环境下,打开命令提示符(管理员):-运行`sfc/scannow`-运行`DISM/Online/Cleanup-Image/RestoreHealth`(注意:如果当前系统无法启动,需要挂载系统盘到某个盘符,然后使用DISM的离线修复。例如,假设系统盘挂载为D:,则命令为:`DISM/Image:D:\/Cleanup-Image/RestoreHealth`)第五步:修复缺失的DLL文件如果事件日志或错误提示中明确提到缺失dwmcorei.dll等文件,可以:1.从相同版本的系统(另一台正常电脑)中复制该文件到故障系统的对应目录(通常为C:\Windows\System32)。2.使用引用[4]中提到的DLLEscort软件(但需注意软件来源的安全性)修复DLL和运行库。但用户需谨慎使用第三方工具,建议优先使用系统自带工具。第六步:调整注册表(针对硬盘节能模式)虽然引用[2]中提到这个设置是为了避免游戏卡顿,但系统还原过程中可能因为硬盘节能导致读写问题,可以尝试:1.打开注册表编辑器(regedit),导航到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk2.在右侧找到EnableControllerIdlePowerManagement,将其值改为0(如果不存在,则新建一个DWORD值,名称为EnableControllerIdlePowerManagement,值为0)。3.重启系统。第七步:禁用集成显卡(临测试)如果用户有独立显卡,可以尝试在BIOS中禁用集成显卡,或者进入安全模式后在设备管理器中禁用集成显卡,然后重启看是否解决问题。但注意,如果禁用后系统无法显示(没有独立显卡),需要谨慎。第八步:重新安装系统如果以上方法都无效,可能是系统镜像本身存在问题。建议使用官方原版镜像重新安装系统。由于用户使用的是老毛桃Win11系统镜像,非官方镜像,可能存在修改导致的不稳定。因此,建议用户从微软官网下载官方镜像进行安装。注意事项:在进行上述操作前,请备份重要数据。根据用户的问题,我们可能需要结合事件日志的具体错误信息来进一步诊断。相关问题:1.如何查看Windows事件日志并筛选关键错误?2.在安全模式下如何更新显卡驱动?3.如何使用DISM离线修复系统?4.如何从正常系统复制DLL文件到故障系统?5.如何制作官方Windows11安装介质?由于用户的问题涉及多个步骤,我们将分步详细说明,并尽可能提供操作命令和截图位置(但由于文本限制,截图无法提供,只能描述步骤)。</think>### 老毛桃 Win11 系统镜像还原失败 DWM 故障解决方案 #### 问题分析 还原失败并出现"DWM故障"、"会话已关闭"错误,通常由以下原因导致: 1. **显卡驱动不兼容**(尤其集成显卡驱动,引用[3]) 2. **系统文件损坏**(如dwmcorei.dll缺失,引用[4]) 3. **电源管理冲突**(硬盘节能模式导致卡顿,引用[2]) 4. **DWM服务异常**(桌面窗口管理器崩溃) --- ### 解决方案步骤 #### 第一步:进入安全模式备份数据 1. 重启连续按`F8`进入恢复环境 2. 选择`疑难解答 > 高级选项 > 启动设置 > 重启` 3. 按`F4`进入安全模式 4. 备份`C:\Windows\Minidump`下的.dmp日志文件(重要) #### 第二步:修复显卡驱动(关键步骤) ```powershell # 在PE环境或安全模式打开PowerShell pnputil /enum-drivers # 列出当前驱动 dism /online /remove-driver /driver:oemX.inf # 卸载问题驱动(X替换为实际编号) dism /online /add-driver:"D:\Drivers\*.inf" /recurse /forceunsigned # 安装新版驱动 ``` > **操作说明**: > - 从主板官网下载最新**集成显卡驱动**(Intel/AMD核显) > - 优先安装`Intel UHD Graphics`或`AMD Radeon Vega`驱动 > - 若更新后仍异常,尝试在设备管理器**禁用集成显卡**(引用[3]) #### 第三步:修复系统文件 ```cmd sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows # 离线扫描 dism /image:C:\ /cleanup-image /restorehealth /source:wim:E:\sources\install.wim:1 ``` > **注意**: > - `E:`替换为Win11安装U盘盘符 > - 若提示`dwmcorei.dll`缺失(引用[4]): > - 从正常Win11系统复制`C:\Windows\System32\dwmcorei.dll` > - 或使用`DLLEscort`修复工具(需在PE下运行) #### 第四步:修改注册表(解决节能冲突) 1. 打开注册表编辑器(`regedit`) 2. 导航路径: ``` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk ``` 3. 创建`DWORD(32位)`值: - 名称:`EnableControllerIdlePowerManagement` - 值:`0`(禁用节能,引用[2]) #### 第五步:重置DWM服务 ```cmd taskkill /f /im dwm.exe # 强制结束进程 sc config UI0Detect start= auto # 启用UI检测服务 sc stop UxSms & sc start UxSms # 重启主题服务 ``` #### 第六步:分析事件日志(定位根源) 1. 打开`事件查看器(eventvwr.msc)` 2. 查看以下日志路径: - `应用程序和服务日志 > Microsoft > Windows > Dwm` - `Windows日志 > 系统` 3. 筛选`错误ID`: - `7031`(服务意外终止) - `1000`(应用程序崩溃) - `4101`(显示驱动故障) > **典型错误处理**: > - 若出现`0xc0000005`访问冲突 → 内存检测`memtest86+` > - 若出现`0x80240017` → 使用`DISM`修复系统映像 --- ### 预防措施 1. **镜像选择**: - 避免使用修改版镜像,推荐[微软官方Win11 ISO](https://www.microsoft.com/software-download/windows11) - 校验SHA256:`certutil -hashfile win11.iso SHA256` 2. **驱动准备**: - 在PE环境下预装`Intel DCH`或`AMD Adrenalin`驱动 3. **BIOS设置**: - 禁用`Secure Boot`临关闭安全启动 - 开启`CSM`兼容模式 > **最后建议**:若多次还原失败,考虑使用`Rufus`制作官方安装盘执行清洁安装,可彻底规避第三方镜像兼容问题[^3][^4]。 --- ### 相关问题 1. **如何区分显卡驱动故障和系统文件损坏?** - 驱动故障特征:开机LOGO后黑屏/花屏,事件ID`4101` - 系统文件损坏:卡在登录界面,事件ID`1001` 2. **PE环境下如何提取事件日志?** ```powershell Get-WinEvent -Path 'C:\Windows\System32\winevt\Logs\System.evtx' | Where-Object { $_.LevelDisplayName -match "Error" } > C:\errors.txt ``` 3. **老毛桃镜像还原失败后如何抢救用户数据?** - 使用`MiniTool Partition Wizard`挂载EFI分区 - 通过`Robocopy`命令行备份: ```cmd robocopy C:\Users D:\Backup /MIR /XF dwm*.dmp /R:3 ``` 4. **为什么修改注册表节能设置能解决DWM故障?** 硬盘节能模式会导致显存数据交换延迟(尤其HDD),禁用后确保DWM实访问显存资源(引用[2])。 [^1]: 系统还原失败常见于驱动兼容性问题 [^2]: 电源管理设置直接影响图形组件稳定性 [^3]: 第三方系统镜像可能缺少关键组件签名 [^4]: DLL文件缺失会中断桌面管理器初始化
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值