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

本文记录了Struts2框架在处理特定表达式时遇到的Ognl异常问题,详细展示了异常堆栈跟踪,并分析了可能的原因是devMode设置为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.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> 我们正在处理用户关于Mac系统复制粘贴文件夹报错代码-43的问题。根据用户提供的引用内容,我们注意到引用[1]和引用[3]提到了在Mac环境下使用VMware遇到的复制粘贴问题,但用户的问题似乎更广泛,可能不仅仅是虚拟机环境。 错误代码-43通常表示“找不到文件”或“文件不存在”(ENOENT)。在Mac系统中,复制粘贴文件夹出现此错误,可能是由于以下原因: 1. 源文件夹不存在或已被移动/删除。 2. 目标路径无效。 3. 权限不足。 4. 文件系统错误。 但是,从用户提供的引用中,我们注意到引用[1]和引用[3]都涉及VMware Tools的安装,这提示用户可能在虚拟机环境中操作。引用[3]提到通过安装VMware Tools来解决复制粘贴问题。因此,我们首先需要确认用户是否在虚拟机中操作。 然而,用户的问题描述并没有明确说明是否在虚拟机中,所以我们应当提供通用的解决方案,并考虑到虚拟机环境的可能性。 根据以上分析,我们给出以下解决方案: 步骤1: 检查源文件夹和目标路径 - 确保源文件夹存在且路径正确。 - 检查目标路径是否存在,并且有足够的空间。 步骤2: 检查权限 - 在Mac上,右键点击文件夹,选择“显示简介”,查看“共享与权限”部分,确保当前用户有读写权限。 步骤3: 重启Finder - 有Finder出现问题会导致复制粘贴失败,可以尝试重启Finder: 1. 按住Option键,同右键点击Dock中的Finder图标。 2. 选择“重新启动”。 步骤4: 使用终端命令复制 - 打开终端(Terminal),使用`cp`命令尝试复制,例如: ```bash cp -R /path/to/source/folder /path/to/destination/ ``` 注意:`-R`表示递归复制整个文件夹。 - 如果终端复制成功,则可能是Finder的临问题。如果终端也报错,可以查看具体的错误信息。 步骤5: 如果是在虚拟机中(如VMware Fusion) - 参考引用[1]和[3],安装或重新安装VMware Tools(或open-vm-tools)可能解决复制粘贴问题。 - 在VMware Fusion菜单中,选择“虚拟机”>“安装VMware Tools”。 - 如果安装失败,可以尝试使用open-vm-tools(对于Linux虚拟机)或者按照引用[3]的方法手动复制安装包并安装。 步骤6: 检查文件系统错误 - 使用磁盘工具(Disk Utility)检查磁盘: 1. 打开“磁盘工具”。 2. 选择启动磁盘,点击“急救”>“运行”。 步骤7: 重置NVRAM/PRAM - 关机,然后开机并立即同按住Option+Command+P+R键,大约20秒后松开。 步骤8: 创建新的用户账户测试 - 如果上述步骤无效,可能是用户账户配置问题。创建一个新的用户账户,登录并尝试复制粘贴操作,以判断是否是原账户的问题。 由于错误代码-43的具体原因可能多样,我们建议用户按照上述步骤逐一尝试。 同,根据用户提供的引用[2]的精神,我们鼓励用户如果问题未解决,请反馈更多信息,以便进一步帮助。 生成相关问题: 1. 如何检查Mac上的文件夹权限? 2. 如何在Mac终端中复制文件夹? 3. VMware Tools安装失败怎么办? 4. 如何重置Mac的NVRAM? 5. 如何创建新的Mac用户账户? 注意:我们引用了用户提供的引用[1]和[3],主要涉及虚拟机环境下的解决方案,但用户的问题可能不限于此,因此我们提供了更通用的解决方案。 </think>在Mac系统中复制粘贴文件夹遇到错误代码 **-43**,通常表示 **“文件/文件夹不存在或路径错误”**(ENOENT)。以下是具体解决方案及步骤: --- ### **解决方案步骤** #### **1. 检查源文件夹状态** - **确认路径正确**:检查被复制的文件夹是否被移动、重命名或删除。 - **修复文件系统**: ```bash diskutil verifyVolume / # 检查主磁盘 diskutil repairVolume / # 修复错误(需重启) ``` #### **2. 重置 Finder 和系统服务** - **重启 Finder**: - 按住 `Option + 右键点击 Dock 中的 Finder 图标` → 选择 **“重新启动”**。 - **重置粘贴板服务**: ```bash killall pboard # 重启粘贴板守护进程 ``` #### **3. 修复权限问题** - **检查文件夹权限**: - 右键点击文件夹 → **“显示简介”** → **“共享与权限”** → 确保当前用户有 **“读与写”** 权限。 - **重置 ACL 权限**: ```bash sudo chmod -RN /path/to/folder # 清除继承的ACL规则 sudo chown $(whoami) /path/to/folder # 重置所有者 ``` #### **4. 虚拟机环境特殊处理**(适用于 VMware 等) - **安装 open-vm-tools**(若在虚拟机内操作): ```bash sudo apt-get install open-vm-tools-desktop # Linux 虚拟机 brew install open-vm-tools # macOS 虚拟机 ``` - **重启 VMware 服务**: ```bash sudo vmware-user-suid-wrapper --reset # 重置VMware工具服务 ``` 参考引用[3]中手动安装VMware Tools的方法[^3]。 #### **5. 终端命令强制复制** 使用 `cp` 命令绕过 Finder 限制: ```bash cp -R /path/to/source_folder /path/to/destination/ ``` - `-R` 表示递归复制整个文件夹。 - 若提示权限不足,开头添加 `sudo`。 #### **6. 排查第三方软件冲突** - 退出所有可能拦截剪贴板的工具(如剪切板管理器、安全软件)。 - **安全模式启动**:重启 Mac 按住 `Shift`,排除第三方驱动影响。 --- ### **常见原因总结** | 原因 | 解决方法 | |---------------------|------------------------------| | 源文件夹路径失效 | 检查路径或重新定位 | | 权限不足 | 重置文件夹权限与所有权 | | Finder 进程异常 | 重启 Finder 或系统 | | 虚拟机工具未正常工作| 安装/重置 open-vm-tools | | 文件系统错误 | 使用磁盘工具修复 | --- ### **相关问题** 1. 如何检查Mac文件夹的完整访问权限? 2. VMware虚拟机中无法复制文件如何修复? 3. 终端`cp`命令复制文件夹提示“Permission denied”怎么办? 4. Mac磁盘工具修复失败后的备选方案有哪些? 5. 如何彻底重置Mac的剪贴板服务? > 引用说明:虚拟机环境解决方案参考了手动安装VMware Tools的步骤[^3],权限修复方法基于Unix系统权限管理逻辑[^1]。若问题持续,建议检查系统日志(`Console.app`)定位具体错误[^2]。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值