Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает директива @ResponseWrapper / 10 сообщений из 10, страница 1 из 1
22.05.2013, 10:58:19
    #38267862
Sh_ura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Добрый день!

Tomact 6
java 6

Вебсервис работает, но возвращает имя тега Response сформированное по умолчанию: MethodNameResponse.
Например, есть метод greeting, значит имя тега Response будет greetingResponse. Задача состоит в том чтобы это имя поменять, например на greetingResponse1.
Насколько я понял для этого служит директива @ResponseWrapper в которой можно задать имя тега в параметре localName.
Пример:
@ResponseWrapper(className="ru.mypkg.GreetResponse", localName="greetingResponse1", targetNamespace=" http://www.mypkg.ru")
public String greeting(String name) ...

Но у меня никак не получается сделать так чтобы директива заработала.
Буду рад любой помощи.


Спасибо!
...
Рейтинг: 0 / 0
22.05.2013, 11:39:09
    #38267967
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Sh_ura,

Есть такое описание интерфейса:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@WebService(name = "Subscribe ", targetNamespace = "http://support.test.ru")
@XmlSeeAlso({
    ObjectFactory.class
})

public interface Subscribe {

    @WebMethod(operationName = "OPER1")
    @WebResult(name = "res", targetNamespace = "")
    @RequestWrapper(localName = "OPER1", targetNamespace = "http://support.test.ru", className = "ru.ws.OPER1")
    @ResponseWrapper(localName = "OPER1RESPONSE", targetNamespace = "http://support.test.ru", className = "ru.ws.OPER1RESPONSE")
    public String oper1(
        @WebParam(name = "param1", targetNamespace = "http://support.test.ru")
        String param1,
        @WebParam(name = "param2", targetNamespace = "http://support.test.ru")
        String param2,
        @WebParam(name = "param3", targetNamespace = "http://support.test.ru")
        String param3);

}



Реализация:

Код: sql
1.
2.
3.
4.
5.
6.
7.
@javax.jws.WebService (endpointInterface="ru.ws.Subscribe ", targetNamespace="http://support.test.ru", serviceName=SubscribeService", portName="SubscribePort")
public class SubscribePortBindingImpl extends BaseWS {

public String dscall(String param1, String param2, String param3) {
}

}



Деплоишь и получаешь WSDL, в котором будет OPER1RESPONSE.
...
Рейтинг: 0 / 0
22.05.2013, 11:41:16
    #38267973
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
pulp,

очепятка:

Реализация:

Код: java
1.
2.
3.
4.
5.
6.
7.
@javax.jws.WebService (endpointInterface="ru.ws.Subscribe ", targetNamespace="http://support.test.ru", serviceName=SubscribeService", portName="SubscribePort")
public class SubscribePortBindingImpl extends BaseWS {

  public String oper1(String param1, String param2, String param3) {
  }

}
...
Рейтинг: 0 / 0
22.05.2013, 11:50:26
    #38268002
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
pulp,

в примере ещё нужно убрать
@XmlSeeAlso({
ObjectFactory.class
})

и extends BaseWS - пропустил.

Ещё можно пойти от обратного (Top down) - нарисовать WSDL файл так, как тебе нужно и сгенерировать на его основе Веб-сервис.
...
Рейтинг: 0 / 0
22.05.2013, 17:36:28
    #38268773
Sh_ura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
К сожалению такой вариант не работает.
Нужен тег OPER1RESPONSE, а в реальности тег OPER1Response.

Какие еще есть идеи?
...
Рейтинг: 0 / 0
22.05.2013, 18:15:01
    #38268838
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Sh_ura,

Опиши по шире задачу, зачем нужно заменять? В какой момент, с кем и как взаимодействует сервис?
...
Рейтинг: 0 / 0
22.05.2013, 18:27:48
    #38268869
Sh_ura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Есть клиент, который ожидает от вебсервиса ответ в определенном формате. В том числе и тег Response ожидается в верхнем регистре.
Может Tomcat не в том режиме запущен?
...
Рейтинг: 0 / 0
22.05.2013, 19:21:55
    #38268960
Sh_ura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Может дело в том что я использую Axis, а надо использовать Axis2 ?
...
Рейтинг: 0 / 0
22.05.2013, 19:32:32
    #38268973
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Sh_uraМожет дело в том что я использую Axis, а надо использовать Axis2 ?
Надо использовать JAX-WS который уже давно является частью JSE.
Axis 1.x вы вряд ли используете. Там нет никаких ResponseWrapper
...
Рейтинг: 0 / 0
23.05.2013, 09:15:30
    #38269456
pulp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает директива @ResponseWrapper
Sh_ura,

А клиент, который отправляет и получает запрос - это один и тот же сервис? Т.е. запрос синхронный или асинхронный? Можешь схему взаимодействия сервисов рассказать?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает директива @ResponseWrapper / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]