Два класса имеют одинаковое имя типа xml

Когда я пытаюсь опубликовать свое рабочее пространство в RAD, я получаю эту ошибку «Два класса имеют одно и то же имя типа xml», вероятно, потому, что одно и то же имя класса существует в одном пакете, но в двух разных банках. И похоже, что аннотация @XmlType должна иметь разные значения для имени атрибута и пространства имен в источниках этих классов. Я попробовал wsdl2java, доступный в Apache CXF, но я не могу заставить его генерировать этот атрибут пространства имен. Я пробовал возиться с опцией пакета -p, но это только для размещения сгенерированных источников в указанном пакете.

Любые идеи, как создать этот атрибут пространства имен для каждого элемента, встречающегося в wsdl? ТИА.


person asgs    schedule 14.02.2011    source источник


Ответы (2)



Я столкнулся с этим для объекта с именем «SubmitDataResponse», который я использовал в качестве возвращаемого объекта из моего метода веб-службы с именем «submitData». Когда я попытался переименовать объект, ошибка исчезла. Мне кажется, что CXF создает свой собственный возвращаемый объект на основе имени метода (в данном случае submitData() -> "SubmitDataResponse"). Вы можете попробовать переименовать класс и посмотреть, есть ли у вас такая же проблема. Возможно, кто-то подскажет, как сохранить имя нашего класса так, как мы хотим (возможно, с некоторой аннотацией).

Надеюсь, это поможет.

person GiantLeprechaun    schedule 21.03.2011
comment
Последующие действия: я добавил @XmlType(namespace=com.company.example) в исходный класс возвращаемых объектов, и это сработало. Поэтому мне не нужно было переименовывать класс возвращаемых объектов, пока я использую аннотацию XmlType.namespace. - person GiantLeprechaun; 21.03.2011
comment
HawkeyeFan, спасибо за ваш ответ, но нет, это не та проблема, с которой я столкнулся. Речь шла о двух классах, которые находились в двух банках с одинаковыми именами пакетов. В конце концов, мне пришлось удалить один из них и жить с ним. Да, атрибут пространства имен, кажется, исправляет это, но может ли wsdl2java его сгенерировать? может надо что-то указать/настроить? - person asgs; 21.03.2011
comment
Кроме того, в этих двух банках было дублировано множество других классов (вероятно, из-за того, что два WSDL очень похожи). Итак, я получил обновленный WSDL, и, следовательно, сгенерированная банка не содержала дубликатов. - person asgs; 22.03.2011