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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Axis2, указать свой wsdl 
:(
    Опции темы
Tsahes
Дата 23.10.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день.
Axis2 предоставляет автоматически сгенерированный wsdl для своих веб-сервисов, доступный по url сервис?wsdl. Я хотел бы внести некоторые изменения в этот файл: использовать schema для объктов запроса и ответа, добавить fault messages и т.д.
А есть ли возможность указать Axis2, чтобы он использовал мой wsdl и отображал именно его при обращении по url? Или принято пользоваться автоматически сгенерированным?
PM MAIL   Вверх
Foo
Дата 23.10.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мне тоже это было нужно, я не нашол как в Axis 2 сделать это, но я нашол друйгой способ решения проблемы. Впринципе то что он генерит не требует изменений/доработок, опиши конкретнее проблему, может можно обойтись без своего wsdl?
--------------------
qip
PM MAIL   Вверх
Tsahes
Дата 23.10.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Суть вот в чем.
Я создал POJO-объект запроса с несколькими полями, реализацию сервиса, задеплоил. Axis2 генерирует в wsdl-файле описание объекта запроса в очень простом виде, например:

Код

<xs:complexType name="CustomerInfoReq">
  <xs:sequence>
  <xs:element name="name" nillable="true" type="xs:string" /> 
  <xs:element name="date" nillable="true" type="xs:string" /> 
  </xs:sequence>
  </xs:complexType>


Это не дает никакого представления действительной схеме сообщения CustomerInfoReq, в которой бы я указал обязательность/необязательность полей, например. Я хотел бы руками построить wsdl и как-то заставить Axis2 отобразить именно его.
Кроме того, я хотел бы определить необходимые мне faul messages, с генерацией которых, как мне кажется, у axis трудности.
PM MAIL   Вверх
Foo
Дата 24.10.2007, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Дело в том, что аксис не очень продуман, и если ты хочеш указать обязательность/необязательность полей, то это врядли у тебя получится, хотя они моглибы предусмотреть например анотации для этого дела. Также через аксис не передаш обьекты java.util.Collections, поэтому мы в своем проекте сделали отдельный пакет, куда сложили обьекты для передачи по аксису, которые по сути дела копировали наши бизнес обьекты но в них небыло ненужных для передачи полей, небыло никакой логики и все колекции менялись на arrays[]. Также мы написали трансформер, который работает через reflection и трансформирует обычные обьекты в обьекты для передачи по axis, а потом на стороне клиента производили обратную трансформацию. Есть в аксисе ещё одна проблема, если ты попытаешся передавать обьекты которые ссылаются друг на друга, например дерево, у каждого нода которого есть ссылка на родителя, в таком случае аксис не сможет сериализовать этот обьект в xml т.к. произойдет зацикливание, и упадет по таймауту. Эту проблему мы тоже обошли, не буду уже тут расписывать как, но следует учитывать что она может возникнуть. Что касается exceptions которые могут упасть на сервере, то аксис их никак не возвращает, а просто пишет месагу типа "axis fault...." и на стороне клиента узнать какой exception упал на сервере невозможно, для решения этой проблемы думаю можно передавать какойто идентификатор exceptiona и бросать его самостоятельно уже на клиенте.

Незнаю, может есть более простые решения описанных выше проблем, буду рад если ктото напишет как можно сделать проще.
--------------------
qip
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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