Consumir WEBSERVICE da MICROSIGA

8 respostas
derheimen

Pessoal estou desenvolvendo uma aplicação web que esta utilizando uma base de dados ORACLE, essa base de dados é utilizada pelos sistemas da MICROSIGA na empresa que trabalho.

Esta minha aplicação web possui um funcionalidade de inclusão de solicitações de produtos, onde o usuário informa alguns dados para realizar a inclussão.
O problema é que esta inclussão não será realizada diretamente na base de dados ORACLE, eu devo consumir um WEBSERVICE implementado pela MICROSIGA que se encarregara de efetuar essa inclusão no banco de dados.

Foi configurado em um servidor os web services fazendo as inclusões, eu consigo obter o WSDL do serviço que devo consumir.

Agora eu pergunto, como faço para consumir esse WEBSERVICE na minha aplicação através de uma JSP ?
Gostaria de uma ajuda dos mais conhecedores.
Desde já agradeço.

8 Respostas

Pedrosa

De uma olhada nos frameworks axis e xfire:

Exemplo com Xfire simples:

public String testeWS() throws Exception {
    URL url = new URL("suaUrldoWSDL");
    Client cliente = new Client(url);
    Object[] resultado = cliente.invoke("metodo",new Object[]{par1,par2);
    //retorno o tipo que quizer
    return resultado[0].toString();
}

Sua JSP deve se comunicar com uma Servlet que aciona a classe que consome o WS.

derheimen

Eu já utilizei o Axis 1.4

1º) Utilizava este comando para gerar o WSDL apartir de classe Java.
java -cp .;%CLASSPATH% org.apache.axis.wsdl.Java2WSDL -o …/…/WebContent/resource/WsAxisUnic.wsdl -l"http://127.0.0.1:8080/axis/services/AutenticaUsuarioWS" -n “urn:AutenticaUsuario” br.mt.unic.AutenticaUsuario

2º) Gerava as classes do web services, utilizando a ferramenta WSDL2Java do AXIS, apartir do WSDL gerado anteriormente.
java -cp .;%CLASSPATH% org.apache.axis.wsdl.WSDL2Java -o ./src -s -S true -Nurn:AutenticaUsuario=br.mt.unic.ws WebContent/resource/WsAxisUnic.wsdl

3º) Publicava a minha app web com o comando abaixo.
java org.apache.axis.client.AdminClient -l"http://127.0.0.1:8080/WsAxisUnic/servlet/AxisServlet" src/br/mt/unic/ws/deploy.wsdd
[color=red]Obs:[/color] esse arquivo de deploy é gerado pela ferramenta do AXIS WSDL2Java.

4º) Criando cliente de acesso a um web service com java
java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/RecursosHumanosWS?wsdl -o ./src -p rh.ws.cliente

Quando implementei um webservice com AXIS 1.4, consumia o meu webservice via http por uma URL informada no borwser, não cheguei de implementar uma JSP para isso.
Exemplo:

Só não sei como fazer já tendo um WSDL pronto, pois ao meu ver preciso criar um CLIENTE para consumir esse web service do MICROSIGA e ainda preciso consumir através da minha JSP.

Alguém tem um exemplo de como eu poderia fazer isso ?

derheimen

Pedrosa, vou tentar utilizar o XFIRE como vc postou acima.

Dentro da minha action aciono uma classe de implementação do XFIRe que se encarregara de consumir o serviço do webservice e me retornar uma resposta, OK.

Se alguém mais tiver uma sugestão, fiquem a vontade para ajudar, rsrsr.

T+.

joaosouza

Olá Heider Matos blz…

Dá uma olhada no Spring-WS, seria uma outra alternativa para seu projeto, um ponto interessante dele

é que vc pode configura-lo para gerar o WSDL dinamicamente, ou seja o framework encarrega-se disso. Um outro

ponto bem legal é que vc pode realizar a comunicação toda atraves de xml tanto para o request qunato para o

response, ficando assim independente de termos específicos de linguagem.

http://static.springframework.org/spring-ws/site/

Falow !!!

Pedrosa

Eu não gosto de todas essas configurações do axis, simples e funcional, já que se trata de um projeto novo o xfire se transformou nesse cara CXF:
http://incubator.apache.org/cxf/

derheimen

Pessoal estou utilizando o JWSDP 2.0 (Java Web Services Developer Pack).
Eu comprei o livro SOA e Web Services em Java do Cleuton Samapaio, que por sinal é muito bom.

Realizei o download e instalei o pacote da sun JWSDP 2.0, configurei as variaveis ambiente necessárias conforme abaixo:

C:\>set path
Path=
C:\oracle\ora92\bin;
C:\oracle\product\10.2.0\client_1\bin;
... <Removidas algumas declarações>
C:\Java\jdk1.5.0_08\bin;
C:\Java\tomcat\tomcat-5.5.20\bin;
C:\Java\ant-1.6.5\bin;
C:\Java\jwsdp-2.0\jaxrpc\bin;
C:\Java\jwsdp-2.0\jwsdp-shared\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH


C:\>set classpath
CLASSPATH=
C:\Java\jdk1.5.0_08\lib;
C:\Java\tomcat\tomcat-5.5.20\lib;
C:\Java\ant-1.6.5\lib;
C:\Java\jdk1.5.0_08\lib\tools.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\axis.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\axis-ant.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\commons-discovery-0.2.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\commons-logging-1.0.4.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\jaxrpc.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\resolver.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\saaj.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\wsdl4j-1.5.1.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\xercesImpl.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\xercesSamples.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\xml-apis.jar;
C:\Java\axis\axis-bin-1_4\axis-1_4\lib\activation.jar;
C:\Java\jdk1.5.0_08\jre\lib\rt.jar;
C:\Java\jwsdp-2.0\jaxrpc\lib\jaxrpc-api.jar;
C:\Java\jwsdp-2.0\jaxrpc\lib\jaxrpc-impl.jar;
C:\Java\jwsdp-2.0\jwsdp-shared\lib\activation.jar;
C:\Java\jwsdp-2.0\jwsdp-shared\lib\mail.jar;
C:\Java\jwsdp-2.0\saaj\lib\saaj-api.jar;
C:\Java\jwsdp-2.0\saaj\lib\saaj-impl.jar;
C:\Java\jwsdp-2.0\fastinfoset\lib\FastInfoset.jar;
C:\Java\jwsdp-2.0\sjsxp\lib\jsr173_api.jar

Mas quando tento gerar as minhas classes stub apartir de um arquivo config.xml estou recebendo este erro.

C:>wscompile -gen -keep config.xml
Exception in thread “main” java.lang.NoClassDefFoundError: de

Arquivo de configuração utilizado:

<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config"> <wsdl location="http://tirinto:8080/wsunic/UNIC_SOLIC_ALMOXARIFADO.apw?WSDL" packageName="stubclasses" /> </configuration>
Não consegui identificar oque seria esse “de”.
Geralmente essa exception quer dizer que não esta encontrando esse “de”, certo!
Alguém que já utilizou o JWSDP 2.0, poderia dar uma mãozinha.
Desde já agradeço.

A

Alguém poderia me dar um “socorro”?
Estou desenvolvendo um WS com Axis2-1.3 e qro consumir este com um cliente local. No entando em ql diretório eu gero o STUB no Cliente ou dentro do Axis2\bin?

A regra que estou utilizando é esta: wsdl2java -uri <diretorio-cliente\resources\META-INF\xxx.wsdl> -p org.ws.xxx.cliente.stub -d adb -s

help aí galera!!

vlws

A

Galera consegui resolver o problema do WebService com o Cliente. Mas agora,não obtenho respostas do servidor!:frowning:

Alguém aí sabe como eu posso testar o meu WebService,como faço para ele exibir as mensagens[/url]?Tenho mesmo que utilizar o log4j[url]?

aguardo respostas…

vlws

Criado 7 de dezembro de 2007
Ultima resposta 19 de set. de 2010
Respostas 8
Participantes 4