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