Почему java.io.ObjectStreamException используется в генераторе заглушек WTK для перечислений?

StackOverflow https://stackoverflow.com/questions/933530

Вопрос

Я использую веб-сервис, реализованный в 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top