Я создаю веб-приложение, используя GWT и GAE / Java.Я получал onFailure (Throwable перехватил) в одном из моих вызовов RPC, поэтому я решил напечатать его.
Я написал некоторый код для вызова catch.printStackTrace () в PrintWriter, обернутом вокруг CharArrayPrintStream,который я тогда собирался отправить в журналы.Это составлено с муравьем Javac.Однако когда я запустил его в ant devmode, я получил ошибку, что Throwable.printStackTrace () не может принять PrintWriter и вместо этого нуждается в PrintStream.Это очень странно, так как (1) ant javac скомпилирован и (2) API для Throwable говорит, что вы можете вызвать printStackTrace () и передать ему PrintStream.
Единственное, что я могу думать, это то, что должно быть какое-тостранное несовпадение версий между версиями библиотеки, с которыми работают devmode и javac (не используется для чтения файлов ant, но я не вижу очевидной проблемы), или компилятор java-to-javascript неправильно выполняет перегрузку.
Итак, чтобы обойти это, я пошел в старую школу и использовал PrintStream, намотанный на ByteArrayOutputStream.Опять же, это скомпилировано с использованием цели 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 (Официальная сборка 113337) $ java -version java версия "1.6.0_29" Java (TM) Среда выполнения SE (сборка 1.6.0_29-b11-402-10M3527) Java HotSpot (TM) 64-Виртуальный сервер Bit Server (сборка 20.4-b02-402, смешанный режим) Я использую gwt-2.4.0.