Можно ли запустить две реализации WS с одной конечной точкой? - PullRequest
1 голос
/ 09 ноября 2011

У меня есть две реализации веб-сервисов, которые совместно используют несколько пространств имен (использует одни и те же объекты - например, объект C). Я хочу опубликовать это так

1) Будут общие сгенерированные объекты на стороне клиента (тот же объект C заглушка)

2) Я могу запускать веб-сервисы на одном порту и получать к ним доступ, просто меняя URL, как показано ниже

http://localhost:6690/WS/A?wsdl
http://localhost:6690/WS/B?wsdl

package a.wsdl.xxx.com;
@WebService(targetNamespace = "a.wsdl.xxx.com", serviceName = "A", name = "A")
public class A{
    @WebMethod
    public C a(){...}
}

// --------------------------------------------- -------------------

package a.wsdl.xxx.com;   
@WebService(targetNamespace = "b.wsdl.xxx.com", serviceName = "B", name = "B")
public class B{
    @WebMethod
    public C b(){...}
}

// --------------------------------------------- -------------------

package xxx.com; 
public class C{
 String s; 
 ....
} 

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Да, я только что создал два файла war: welcome1.war иreeting2.war.Каждый из них реализует интерфейс hello-world, как показано ниже, только имена классов отличаются Greeting1 и Greeting2.Затем я развернул оба к jboss.Оба доступны через http://localhost:8080/greeting1?wsdl и http://localhost:8080/greeting2?wsdl

package my.webservice;

import javax.jws.WebService;
import javax.jws.WebMethod;

@WebService
public class Greeting1 {
   @WebMethod
   public String greetClient(String user)
   {
      return "hello " + user;
   }
}
0 голосов
/ 09 ноября 2011

Два или более приложений не могут прослушивать один и тот же порт.

...