Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JAXB2 кастомизация complexType 
:(
    Опции темы
Strange74
Дата 7.6.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 22.10.2006
Где: Танкоград

Репутация: нет
Всего: нет



Здравствуйте, столкнулся с такой проблемой:

Есть веб-сервис на xfire, в нем существует метод:
Код

@WebMethod
    @WebResult(name="registry")
    public MembersRegistry getRegistry()
    {
        return MembersRegistry.getInstance();
    } 


класс MembersRegistry - следующий:

Код

@XmlType(namespace="http://registry.ns.naumen.ru")
public class MembersRegistry
{
    private static Map<Long, String> members = new HashMap<Long, String>();
    
    private static final MembersRegistry _instance = new MembersRegistry();
    
    private MembersRegistry() {}
    
    public static MembersRegistry getInstance()
    {
        return _instance;
    }
    
    static
    {
// Здесь заполнение мэпа
    }

    
    public Map<Long, String> getMembers()
    {
        return members;
    }  
}



для MembersRegistry написано aegis-представление:

Код

<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns:xsd="http://xfire.codehaus.org/schemas/1.0/mapping.xsd"
    xmlns:registry="http://registry.ns.naumen.ru">
    <mapping name="registry:MembersRegistry">
        <property name="members" keyType="java.lang.Long" componentType="java.lang.String" />
    </mapping>
</mappings>



Теперь далее, я хочу чтобы клиент, который генерируется с помощью wsgen оперировал этим мепом (Map<Long, String>).

Если бы данные в xml-schema были простыми (например числами), можно было бы использовать следующий код для jaxb-генерации:

Код

<jaxb:globalBindings>
       <jaxb:javaType name="java.util.Map" xmlType="tns:long2stringMap"
                     parseMethod="org.beq.xfire.services.util.Long2StringMapAdapter.parseMap" 
                      printMethod="org.beq.xfire.services.util.Long2StringMapAdapter.print" />                             
</jaxb:globalBindings>


Все xml-типы берутся при генерации из wsdl сервиса. При генерации по такому коду возникает ошибка:
Код

[wsgen] ERROR ErrorReceiverImpl                   - undefined simple type "long2stringMap".


Если добавлять нэймспейс в котором (в wsdl) определен данный тип long2stringMap - не помогает. Я думаю проблема в том что это complexType, а не simple type.

Собственно вопрос. Кто-нибудь  знает, как в jaxb настроить адаптер для сложного типа. Хотя бы ссылку если можно, потому что не нашел, хоть и очень искал.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.