Consumir Web Service através de outro Web Service

4 respostas
java
D

Criei um web service e preciso consumir outro web service a partir deste, alguém tem algum exemplo/link/tutorial para disponibilizar? Estou utilizando o Netbeans.

Obrigado.

Diogo

4 Respostas

igomes

Vc pode ter um client que acessa o web service1 e joga essa informação para o 2.
Se vc consegue fazer a parte do client e do server não terá nenhum problema .
É soap/rest ?

pfk66

Complementando a resposta do igomes, se for linux você pode fazer:
curl webservice1 | curl webservice2

D

É soap, tem um dos web services que não posso fazer a ponte de client, consigo acessa-lo somente com outro web service. Mas não sei se estou fazendo da forma correta, num mesmo web service eu faço ele ser um client e web service, pelo netbeans:

Esse é meu web service1:

@WebService(serviceName = "SeniorWS")
@Stateless()
public class SeniorWS {  
    /**
     * This is a sample web service operation
     */
    @WebMethod(operationName = "hello")
    public String hello(@WebParam(name = "name") String txt) {
        
        try {
            return "Sucesso: " + txt + " !" + Controller.enviarPessoa();
        } catch(Exception ex) {
            return "Erro: " + ex.getMessage();
        }
    }
}

Nele eu chamo o método enviarPessoa(), nesse método eu consumo o web service2, abaixo segue o código do método do web service2:

private static GravaInterfacePrevineResponse gravaInterfacePrevine(wsserver.previne.logone.arcadian.com.interfaceprevinews.GravaInterfacePrevineRequest gravaInterfacePrevineRequest) {
            
    wsserver.previne.logone.arcadian.com.interfaceprevinews.WsServerPortService service;
    wsserver.previne.logone.arcadian.com.interfaceprevinews.WsServerPort port;
    
    Authenticator.setDefault(new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("####", "####".toCharArray());
        }
    });

    service = new wsserver.previne.logone.arcadian.com.interfaceprevinews.WsServerPortService();
    port = service.getWsServerPortSoap11();
                
    return port.gravaInterfacePrevine(gravaInterfacePrevineRequest);
}

Mas no log da o seguinte erro:

Grave: MASM0003: o arquivo de configuração metro-default.xml default não foi carregado
Advertência: MASM0010: não é possível cancelar o marshalling do arquivo de configuração metro da localização [ file:/C:/Users/diogo.zucchi/Documents/NetBeansProjects/SeniorTgpmWS/build/classes/META-INF/metro-default.xml ]

pfk66

Lamento.

Criado 29 de julho de 2016
Ultima resposta 5 de ago. de 2016
Respostas 4
Participantes 3