Eclipse 和 MyEclipse控制台console不停的自动跳动,跳出来解决方案http://jmhmlu.blog.163.com/blog/static/16161229820124311

本文详细介绍了如何通过Eclipse的首选项设置来自定义控制台日志的显示方式,包括选择性地展示标准输出和错误信息。

http://jmhmlu.blog.163.com/blog/static/1616122982012431113853962/


按下面的设置,可以让它自动跳出来(或不跳出来):

windows  ->   preferences   ->  run/debug   ->   console  

在右边面板勾选或去掉"Show when program writest to standard out"和"Show when program writes to standard error"两个多选框,然后重启Eclipse。

<think> 我们面对的问题是:在配置DWR(Direct Web Remoting)时,dwr.xml文件出现两个问题: 1. 下载 'http://getahead.org/dwr/dwr20.dtd' 到 'C:' 时出现错误(可能是网络问题或URL变更) 2. Element type "dwr" must be declared (XML验证失败,因为找不到DTD声明) 结合引用[1]引用[2]中的信息,我们可以这样解决: 解决方案: 1. **问题分析**: - 错误信息表明XML解析器无法下载DTD文件(可能因为URL失效、网络限制或本地权限问题)。 - 由于无法下载DTD,解析器无法验证`<dwr>`元素的合法性,因此报告元素未声明。 2. **解决方案一:使用本地DTD文件(推荐)**(参考引用[1]中的方法) - 步骤1:获取`dwr20.dtd`文件 - 从DWR的官方源码包(如dwr-2.x.zip)中找到`dwr20.dtd`文件,或者从互联网下载(如果可用)。 - 也可以从其他已有项目中复制。 - 步骤2:将`dwr20.dtd`文件放在项目的`WEB-INF`目录下(或其他合适位置,如创建一个`dtd`目录)。 - 步骤3:修改dwr.xml的DOCTYPE声明,指向本地DTD文件: ```xml <!DOCTYPE dwr SYSTEM "WEB-INF/dwr20.dtd"> ``` 或者使用绝对路径(不推荐,因为可移植性差): ```xml <!DOCTYPE dwr SYSTEM "file:///C:/your_project_path/WEB-INF/dwr20.dtd"> ``` 3. **解决方案二:使用公共DTD声明(如果网络允许)**(参考引用[2]) - 注意:原始问题中使用的URL是`http://getahead.org/dwr/dwr20.dtd`,但引用[2]中给出的DTD位置是: ```xml <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> ``` 显然,DWR2.0的DTD可能不在这个位置。实际上,DWR2.0的公共DTD声明应该是: ```xml <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> ``` 但请注意,这个URL可能已经失效(因为引用[1]提到MyEclipse6没有自带dwr20.dtd,所以可能当时就没有官方公共DTD)。 4. **解决方案三:使用绝对路径(临时解决)** - 如果只是本地开发,且不想配置网络下载,可以将DTD文件放在本地磁盘(如C:\dwr20.dtd),然后: ```xml <!DOCTYPE dwr SYSTEM "file:///C:/dwr20.dtd"> ``` 5. **解决方案四:移除DTD声明(不推荐,但可暂时消除错误)** - 如果不进行XML验证,可以移除DOCTYPE声明,但这样XML解析器将无法验证文件结构。 ```xml <?xml version="1.0" encoding="UTF-8"?> <dwr> ... 配置内容 ... </dwr> ``` - 注意:这可能导致IDE的自动提示验证功能失效。 推荐使用解决方案一(将DTD文件放入项目并相对路径引用),这样项目可以自包含,便于团队协作部署。 具体操作步骤(以Eclipse/MyEclipse为例): 1. 在项目的`WEB-INF`目录下创建子目录`dtd`(可选)。 2. 将`dwr20.dtd`文件复制到`WEB-INF/dtd`目录中。 3. 修改dwr.xml文件顶部的DOCTYPE声明为: ```xml <!DOCTYPE dwr SYSTEM "WEB-INF/dtd/dwr20.dtd"> ``` 4. 刷新项目,错误应该消失。 验证: - 在浏览器中访问DWR测试页面(如引用[3]):`http://localhost:8080/你的工程/dwr` - 应该能看到配置的类(如`service (collon.Service)`)[^3] 附加说明: - 如果使用Spring集成,请参考引用[4]中的Spring配置部分。 示例dwr.xml(包含正确的DOCTYPE): ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr SYSTEM "WEB-INF/dtd/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="myService"> <param name="class" value="com.example.MyService" /> </create> </allow> </dwr> ``` 通过以上步骤,应该可以解决DTD下载失败以及元素未声明的错误。 §§相关问题§§ 1. 如何获取DWR 2.0的dwr20.dtd文件? 2. 在无法访问外部网络的环境中,如何配置XML文件的DTD验证? 3. DWR 3.0的配置文件与DWR 2.0有何不同? 4. 如何验证DWR配置文件是否正确加载? </think> ### 解决 DWR 配置中的 "Element type 'dwr' must be declared" 错误 #### 问题分析 错误提示表明 XML 解析器无法验证 `<dwr>` 元素,原因通常是: 1. DTD 文件下载失败(网络问题或路径错误) 2. DTD 声明不正确 3. DTD 文件未正确关联到 XML 文件 --- ### 解决方案步骤 #### 方法 1:使用本地 DTD 文件(推荐) 1. **获取 DWR 2.0 DTD 文件** - 从 [DWR 源码包](https://github.com/directwebremoting/dwr) 下载 `dwr20.dtd` - 或直接下载:[dwr20.dtd](https://www.getahead.ltd.uk/dwr/dwr20.dtd)(备用镜像) 2. **放置 DTD 文件到项目** ```plaintext 项目目录 └── WEB-INF/ ├── dwr.xml └── dwr20.dtd <-- 放置在此处 ``` 3. **修改 dwr.xml 的 DOCTYPE** ```xml <!DOCTYPE dwr SYSTEM "WEB-INF/dwr20.dtd"> ``` #### 方法 2:使用有效的 PUBLIC DTD(需联网) ```xml <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "https://www.getahead.ltd.uk/dwr/dwr20.dtd"> ``` #### 方法 3:MyEclipse 专用配置 1. 将 `dwr20.dtd` 复制到 MyEclipse 目录: ``` MyEclipse6/ └── myeclipse/ └── eclipse/ └── plugins/ └── com.genuitec.eclipse.j2eedt.core_6.0.0.zmyeclipse60020070820/ └── catalog-dtd/ ├── dwr10.dtd └── dwr20.dtd <-- 添加到此 ``` 2. 重启 MyEclipse --- ### 完整配置示例 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr SYSTEM "WEB-INF/dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="myService"> <param name="class" value="com.example.MyService"/> </create> <convert converter="bean" match="com.example.MyBean"/> </allow> </dwr> ``` #### 验证配置 1. 访问测试页面:`http://localhost:8080/你的工程名/dwr` 2. 应显示已配置的类:`myService (com.example.MyService)`[^3] > **关键点**:确保 DTD 文件路径正确,WEB-INF 目录下的 `dwr20.dtd` 不可删除[^1] --- ### 常见问题排查 1. **DTD 下载失败** - 检查防火墙设置,临时禁用杀毒软件 - 使用 `https://` 替代 `http://`(现代浏览器可能阻止非安全连接) 2. **IDE 缓存问题** - 清理项目缓存:MyEclipse → Project → Clean - 重启 IDE 3. **Spring 集成问题** - 确认使用最新版 DWR[^4] - 检查 Spring bean 是否能在 DWR 外正常工作 - 添加 Spring 集成配置: ```xml <create creator="spring" javascript="myService"> <param name="beanName" value="myServiceBean"/> </create> ``` --- ### 附加说明:DWR 配置文件结构 ```xml <dwr> <!-- 初始化扩展配置 --> <init> <creator id="..." class="..."/> <!-- 对象创建方式 --> <converter id="..." class="..."/> <!-- 数据类型转换器 --> </init> <!-- 核心配置 --> <allow> <create creator="new" javascript="JS对象名"> <param name="class" value="完整类路径"/> </create> <convert converter="bean" match="要转换的Bean类"/> </allow> <!-- 方法签名声明 --> <signatures>...</signatures> </dwr> ``` > 完整规范参考 DWR 官方文档[^2][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值