Может ли веб-служба вызывать другую веб-службу на том же сервере приложений? - PullRequest
1 голос
/ 05 февраля 2010

Я использую Netbeans 6.5 для генерации сервиса JAX-WS Metro и Glassfish 2.1 в качестве сервера приложений.

Предположим, у меня есть два веб-сервиса, например,

...

@WebMethod(operationName = "doXXX")
public String doXXX(
@WebParam(name = "id") String id
...    

...
@WebMethod(operationName = "doYYY")
public String doYYY(
@WebParam(name = "result") String result
... 

и у меня есть клиент веб-службы (приложение Java), который с радостью вызывает оба.

Теперь я хочу, чтобы метод XXX вызывал метод YYY, т. Е. Мне нужно разместить клиентский прокси для YYY внутри веб-службы XXX.

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 05 февраля 2010

Вы не должны пытаться прокси-запрос для вызова метода в том же приложении - это повлечет за собой ненужную сериализацию / десериализацию объектов в сообщения XML и обратно.

Если вам нужно вызвать другой метод внутри того же приложения, перепроектируйте свое приложение, чтобы вы могли получить доступ к любой области приложения, которую вы хотите вызвать.

0 голосов
/ 03 марта 2010

Я поиграл и разобрался.

Вы не хотите вызывать реальную веб-службу через прокси-клиент, потому что тогда вы будете без необходимости сериализовывать / десериализовывать данные.

Предположим, что в приведенном выше примере метод doXXX находится внутри класса с именем XXX и что метод doYYY находится внутри класса с именем YYY.

(Обратите внимание, что класс будет аннотироваться тегом @WebService ().)

Для вызова doYYY () из метода doXXX:

YYY yyy = new YYY ();  
yyy.doYYY ();
...