Почему java.io.ObjectStreamException используется в генераторе заглушек WTK для перечислений?
-
06-09-2019 - |
Вопрос
Я использую веб-сервис, реализованный в WCF, в интерфейсе которого определены перечисления.Я пытаюсь вызвать это из клиента Java BlackBerry.Я использую Eclipse для разработки приложения Java для BlackBerry.я использую Беспроводной инструментарий Sun Java (WTK) 2.5.2 для создания кода-заглушки, поскольку веб-служба довольно большая (уже используется клиентом Windows Mobile).
Когда я пытаюсь сгенерировать код-заглушку с помощью WTK, я получаю ошибки в Eclipse относительно перечислений.В следующей функции он жалуется, что java.io.ObjectStreamException не может быть преобразован в тип.
private Object readResolve()
throws java.io.ObjectStreamException {
return fromValue(getValue());
}
При запуске генератора заглушек имеется переключатель для CLDC 1.0 или CLDC 1.1.Генерация с использованием обоих вариантов приводит к одной и той же проблеме.
Я нашел сообщение на форуме об этом в Sun без ответа.Человек в этом сообщении заявляет: «Теперь java.io.ObjectStreamException находится не в CLDC, а в CDC.Есть ли хороший инструмент для создания заглушек для веб-служб для J2ME, в частности CLDC 1.0/1.1?» Я убедился, что его нет в CLDC 1.1, просмотрев [документацию 3).
В Eclipse есть два быстрых решения для исправления этой ситуации:1) Создайте класс ObjectStreamException в пакете java.io или 2) Исправьте настройку проекта (которая требует от меня добавления ссылки).
Обновлять:
Вот что говорит спецификация JSR-172...
5.2.5 Перечисление Подмножество JAX-RPC не обеспечивает поддержки перечислений XML.
5.2.6 Простые типы, полученные в результате ограничения. Подмножество JAX-RPC не обеспечивает поддержки для получения простых типов путем ограничения.
WSDL для перечисления WCF генерирует <xs:simpleType>
с <xs:restriction>
содержащий <xs:enumeration>
.Так что, мне просто сказать, что это поле является целым, и определить константы?
Это просто ошибка в WTK?В этом случае я отправил отчет об ошибке в Sun и посмотрю, ответят ли они.Почему инструментарий не пометит это как ошибку?
Итак, теперь мне нужно изменить интерфейс, чтобы он соответствовал JSR-172.Существуют ли инструменты для чтения WSDL и выявления проблем соответствия?
Решение
CLDC и Wireless Toolkit используют Java Micro Edition.JavaME основан на версии 2 языка Java, что означает отсутствие обобщений и перечислений.
Первым шагом при изучении веб-служб для вашего телефона Blackberry будет чтение спецификаций JSR-172.