Primeiramente, obrigado a todos que se prontificarem a ler meu tópico.
Agora vou explicar meu “problema”:
Estou utilizando o AXIS APACHE 1.4
Criei um Web Service e gerei um cliente para o mesmo, a fim de testar meu serviço.
Para gerar um cliente eu utilizo, claro, o wsdl. E, através do plugin WSDL2Java do Eclipse gero as classes que serão instanciadas pelo meu serviço web.
Dentre essas classes geradas encontra-se uma chamada MinhaClasseLocator.java que já vem setado nela a url do serviço web que meu cliente irá se comunicar.
O problema vem agora:
Eu irei preciso criar um cliente que atenda a vários serviços diferentes, porém de empresas diferentes. Sendo assim, cada uma com sua url. Entao queria saber como faço no AXIS para que meu cliente gerado não venha já com a url setada, para que eu dê um set disso no cliente que eu criei. Para que eu não precise ficar criando um cliente para cada wsdl diferente que eu for utilizar.
Minha ideia é ter cada url de cada empresa em um campo no banco onde através de uma interface gráfica meu usuário selecione a empresa na qual ele deseja se comunicar e dai seja automatico. Meu cliente va no banco leia a url, set no locator e envie a mensagem.
Só que do jeito que está, onde na geração do cliente já vem setada a url não consigo implementar essa solução desejada.
Fico grato a quem possa me ajudar.
Na classe MinhaClasseLocator.java o campo que já vem setado é esse:
// Use to get a proxy class for ScmbaTissService
private java.lang.String ScmbaTissService_address = "http://localhost:8070/axis/ScmbaTissService.jws";
E no meu cliente faço isso para pegar o endereço a ser direcionado a mensagem:
ScmbaTissServiceServiceLocator serviceLocator = new ScmbaTissServiceServiceLocator();
ScmbaTissService scmbaTissService = serviceLocator.getScmbaTissService(); //exatamente aqui obtenho a url da empresa destino
ScmbaTissServiceSoapBindingStub scmbaTissServiceStub = (ScmbaTissServiceSoapBindingStub)scmbaTissService;
E eu queria que ficasse assim:
MinhaClasse w_cliente = new MinhaClasse("https://localhost:8181/tissSolicitacaoStatusProtocolo/tissSolicitacaoStatusProtocoloV2_01_01?wsdl");
onde até entao não é possivel porque MinhaClasseLocator esta da forma que descrevi acima.
Agradeço desde já