2012-01-15 58 views
0

我正在使用GWT和GAE/Java构建一个Web应用程序。我在一次RPC调用中遇到了onFailure(Throwable),所以我想我会打印出来。GWT/GAE(Java):代码使用javac构建,但在运行于ant devmode时失败

我写了一些代码对周围CharArrayPrintStream,这让我再要发送到日志包裹一个PrintWriter调用caught.printStackTrace()。这与蚂蚁javac编译。但是,当我在ant devmode中运行它时,出现Throwable.printStackTrace()无法接受PrintWriter的错误,而是需要PrintStream。这很奇怪,因为(1)ant javac编译和(2)Throwable的API说你可以调用printStackTrace()并将它传递给PrintStream。

我唯一能想到的是,在devmode和javac工作的库版本之间必须存在一些奇怪的版本不匹配(不习惯读取ant文件,但我没有看到明显的问题),或者java-to-javascript编译器没有正确地重载。

因此,要解决,我去老同学和周围使用一个ByteArrayOutputStream包裹一个PrintStream。再次,这使用ant javac目标进行编译。这一次我得到了一个奇怪的错误:

00:00:46.700 [ERROR] Line 72: The method close() is undefined for the type PrintStream 

同样的事情发生flush()。我无法相信称为“Stream”的东西没有close()或flush()方法。这里发生了什么?


我正在运行最新版本的OS X 10.6.8(x86)。我的浏览器是Chrome:16.0.912.63(官方Build 113337) $ java -version java版本“1.6.0_29” Java(TM)SE运行环境(build 1.6.0_29-b11-402-10M3527) Java HotSpot (TM)64位服务器虚拟机(构建20.4-b02-402,混合模式) 我正在使用gwt-2.4.0。

回答