java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFa

本文解决了一个在使用Struts2框架返回JSON数据时遇到的问题:若Action中返回SUCCESS而非null,则会抛出IllegalStateException异常。文章详细介绍了异常堆栈跟踪,并给出了正确的解决方案。

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

严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:839)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:533)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
在用action 里返回json 数据时,不能return SUCCESS ,必须return null 否则报此错误!



http://blog.youkuaiyun.com/aaa1117a8w5s6d/article/details/8439584
<think>我们正在解决DBeaver启动时出现的"java.lang.IllegalStateException: Error initializing desktop platform"错误。根据引用中提到的IllegalStateException错误,我们可以从以下几个方面入手: 1. 引用[1]提到刷新Maven依赖可以解决类似问题,但DBeaver不是Maven项目,所以我们可以考虑更新或重新安装DBeaver的依赖(即Java环境或DBeaver本身)。 2. 引用[2]和[4]都提到类初始化失败的问题,可能是由于环境配置问题或库冲突,我们可以尝试清理DBeaver的缓存和配置。 3. 引用[5]提到jar包冲突,我们可以考虑DBeaver的插件冲突问题,通过删除插件缓存来解决。 结合以上引用和DBeaver的常见问题处理,给出以下解决方案: 步骤1:检查Java环境 由于DBeaver是基于Java的应用程序,请确保你安装了兼容的Java版本(DBeaver需要Java 11或更高版本)。 在终端中运行: ```bash java -version ``` 如果版本低于11,请从[Adoptium Temurin](https://adoptium.net/)下载并安装Java 11+。 步骤2:重置DBeaver工作区(可能包含损坏的配置) - 关闭DBeaver。 - 备份你的数据库连接配置(位于用户目录下的`.dbeaver4`文件夹,其中包含连接信息)。 - 删除DBeaver的工作区目录(根据操作系统不同): - Windows: `%APPDATA%\DBeaverData\workspace6` - macOS: `~/Library/DBeaverData/workspace6` - Linux: `~/.local/share/DBeaverData/workspace6` - 重新启动DBeaver。 步骤3:清理插件缓存 - 关闭DBeaver。 - 删除插件缓存目录: - Windows: `%APPDATA%\DBeaverData\eclipse-plugins` - macOS: `~/Library/DBeaverData/eclipse-plugins` - Linux: `~/.local/share/DBeaverData/eclipse-plugins` - 重新启动DBeaver(它会重新下载插件)。 步骤4:增加内存(如果是因为内存不足导致初始化失败) - 找到DBeaver的配置文件(安装目录下的`dbeaver.ini`文件)。 - 调整内存参数,例如: ``` -Xms512m -Xmx2048m ``` - 保存并重启DBeaver。 步骤5:禁用硬件加速(图形渲染问题可能导致桌面平台初始化失败) - 在DBeaver的配置文件(`dbeaver.ini`)末尾添加: ``` -Dorg.eclipse.swt.internal.graphics.disableGraphics=true ``` - 保存并重启DBeaver。 步骤6:检查日志文件 如果上述步骤无效,请查看DBeaver的日志文件以获取更具体的错误信息: - Windows: `%APPDATA%\DBeaverData\workspace6\.metadata\.log` - macOS: `~/Library/DBeaverData/workspace6/.metadata/.log` - Linux: `~/.local/share/DBeaverData/workspace6/.metadata/.log` 根据日志中的具体错误信息进一步排查。 步骤7:完全卸载并重新安装 - 卸载DBeaver。 - 删除整个DBeaverData目录(位置同上,注意备份连接配置)。 - 重新安装最新版DBeaver。 如果问题仍然存在,请考虑在DBeaver的官方GitHub仓库提交Issue。 相关问题: 1. 如何解决DBeaver启动时出现的"Java虚拟机无法启动"错误? 2. DBeaver在Linux系统上无法打开图形界面怎么办? 3. 如何备份和恢复DBeaver的数据库连接配置?</think>### 解决 DBeaver 初始化桌面平台错误:`java.lang.IllegalStateException: Error initializing desktop platform` 此错误通常由 Java 环境冲突、图形渲染问题或配置损坏引起。以下是系统化的解决方案: --- #### 一、核心修复步骤(按优先级排序) 1. **重置 DBeaver 工作区**(解决配置损坏): ```bash # 关闭 DBeaver 后执行 rm -rf ~/.local/share/DBeaverData/workspace6 # Linux/macOS ``` Windows:删除 `%APPDATA%\DBeaverData\workspace6` 目录 2. **禁用硬件加速**(解决图形渲染冲突): - 编辑 DBeaver 配置文件(安装目录下的 `dbeaver.ini`) - 末尾添加: ```ini -Dorg.eclipse.swt.internal.graphics.disableGraphics=true ``` 3. **更新 Java 环境**(解决版本冲突): ```bash # 验证 Java 版本 (Java 11+) java -version ``` - 下载 [Adoptium Temurin JDK 17](https://adoptium.net/) - 配置环境变量 `JAVA_HOME` 指向新 JDK --- #### 二、高级修复方案 4. **清理插件缓存**: ```bash rm -rf ~/.local/share/DBeaverData/eclipse-plugins # Linux/macOS ``` Windows:删除 `%APPDATA%\DBeaverData\eclipse-plugins` 5. **内存调整**(解决资源不足): 编辑 `dbeaver.ini`: ```ini -Xms512m -Xmx2048m # 根据内存调整(建议 ≥2GB) ``` 6. **安全模式启动**: ```bash dbeaver -nosplash -clean ``` --- #### 三、日志分析关键点 检查日志文件(路径参考上文): ```log !ENTRY org.eclipse.ui 4 0 2023-10-05 14:30:22.123 !MESSAGE Error initializing desktop platform !STACK 0 java.lang.IllegalStateException: SWT resource already disposed at org.eclipse.swt.graphics.Device.getDevice(Device.java:120) Caused by: java.lang.NullPointerException ``` 重点关注: - `SWT resource already disposed` → 禁用硬件加速 - `ClassNotFoundException` → 清理插件缓存 - `OutOfMemoryError` → 增加 `-Xmx` 值 --- #### 四、彻底重装流程 1. 卸载 DBeaver 2. 删除残留配置: ```bash # Linux/macOS rm -rf ~/.local/share/DBeaverData ~/.dbeaver4 # Windows rmdir /s /q "%APPDATA%\DBeaverData" rmdir /s /q "%APPDATA%\DBeaver" ``` 3. 从官网下载最新版:[DBeaver 下载页](https://dbeaver.io/download/) > **备份提示**:操作前备份 `~/.dbeaver4` (连接配置) 和 `~/.local/share/DBeaverData/drivers` (驱动配置) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值