Sou novo no forum e estou com um problema enorme.
Sou iniciante em Java, ou seja, apanhando muito ainda e me foi solicitado fazer um Web Service que será consumido por uma aplicação php.
Foi solicitado que o mesmo fosse desenvolvido em java pois é uma linguagem free.
Pelo que li no forum uma boa maneira de desenvolver é utilizando tomcat + axis.
Instalei tudo e fiz um pequeno teste e funcionou, porém, agora eu “travei” pois preciso fazer um webservice que receba parametros, acesse o banco de dados e retorne os dados para a aplicação php.
Estou procurando material na internet, mas encontro somente exemplos basicos como o que fiz e não estou conseguindo dar continuidade ao projeto que tem que estar operando até a próxima semana.
Será que alguém teria algum material ou sabe onde posso encontrar um exemplo parecido com o que preciso, pois como sou leigo, até conseguir desenvolver por meios próprios vai ser complicado.
Eu consegui fazer um exemplo utilizando vetores para retornar os dados, porém, no xml de resultado as colunas ficam com as tags iguais.
Tem como eu gerar um xml com o resultset, tendo as colunas do sql como nome das tags?
Grato,
R
renatotm
Só complementando,
O que eu estou precisando é que o xml gerado seja nesse estilo:
Crie os getters e setters referentes ao seu objeto pronto seu xml está montado.
R
renatotm
Pedrosa,
Eu achei interessante esse Xstream, fiz um exemplo dentro do eclipse e funcionou perfeitamente, porém, quando transformo o .java em .jws no axis, está dando erro justamente quando vou utilizar o bean que criei.
Tem algum segredo pra ele localizar o bean quando transformo em webservice?
As duas classes estão no mesmo diretório mas ele não consegue localizar.
Os erros ocorrem nas seguintes linhas:
List<Pessoa> pessoas = new ArrayList<Pessoa>();
Pessoa pessoa = new Pessoa();
Line 34, column -1: cannot find symbol
Line 34, column -1: cannot find symbol
Line 38, column -1: cannot find symbol
Line 38, column -1: cannot find symbol
Essa é minha classe de teste que virou webservice no axis (JdbcExemploXstream.jws)
importjava.sql.*;importjava.util.ArrayList;importjava.util.List;importcom.thoughtworks.xstream.XStream;publicclassJdbcExemploXstream{publicStringClientes(Stringargs)throwsSQLException{try{DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());}catch(Exceptione){System.out.println("ERRO NO CARREGAMENTO DO DRIVER DO BANCO DE DADOS = "+e.getMessage());}Connectionconn=null;Statementstmt=null;try{conn=DriverManager.getConnection("jdbc:oracle:thin:@SERVER:1521:USER","SENHA","acesso");stmt=conn.createStatement();ResultSetresu=stmt.executeQuery("select ID_PESSOA, RAZAOSOCIAL from PESSOA where ID_PESSOA in ("+args+") order by ID_PESSOA");XStreamxstream=newXStream();List<Pessoa>pessoas=newArrayList<Pessoa>();while(resu.next()){Pessoapessoa=newPessoa();pessoa.setId_Pessoa(resu.getString(1));pessoa.setNome(resu.getString(2));pessoas.add(pessoa);}returnxstream.toXML(pessoas);}catch(SQLExceptione){System.out.println("ERRO = "+e.getMessage());}returnnull;}}
Pedrosa
Seu bean esta preparado para receber uma pessoa, receba também um array:
Antes de tentar consumir o servico tente navegar pelo objeto conforme meu exemplo, depois se preocupe com o webservice.
R
renatotm
Vou verificar esse XFire e ver se consigo utilizá-lo.
Qualquer coisa peço help novamente.
Obrigado pela ajuda.
rbamartins
Cara… vale a pena ler SOA e WebServices em Java de Cleuton Sampaio. Esclarece muitas coisas.
Apesar de ser muito por gosto de cada um, prefira o XFire ao Axis(é meio sadomasoquista). Se possível veja o JAX-WS da Sun que integrado ao Netbeans é muito bom.
Por exemplo, devo configurar algo mais no [color=blue]web.xml[/color] além da servlet do XFIRE?
No arquivo [color=red]service.xml[/color], configuro os meus webservices, mas em que lugar na minha app web deve ficar esse arquivo? WEB-INF !!!
Gostaria de um tutorial mais completo um pouco se possivel, preciso desenvolver um web service para realizar consultas, executar history procedures, etc…
A comunicação com webservices, será através de páginas desenvolvidas em PHP.
Desde já agradeço.
T
Tecnoage
Heider Matos:
Alguém sabe onde posso encontrar um tutorial legal sobre XFIRE.
Por exemplo, devo configurar algo mais no [color=blue]web.xml[/color] além da servlet do XFIRE?
No arquivo [color=red]service.xml[/color], configuro os meus webservices, mas em que lugar na minha app web deve ficar esse arquivo? WEB-INF !!!
Gostaria de um tutorial mais completo um pouco se possivel, preciso desenvolver um web service para realizar consultas, executar history procedures, etc…
A comunicação com webservices, será através de páginas desenvolvidas em PHP.
Desde já agradeço.
Se vc vai começca rum projeto do zero, aconselho a não usar o XFire e utilizar logo o APACHE CXF, é uma espécie de evolução do XFire com outros projetos do mesmo tipo.
abraços
derheimen
Ok, vou seguir seu conselho… já havia lido algo do tipo, no site do XFire.
Você sabe onde posso encontrar material do CFX, além do site oficial.
jgbt
duas coisas:
1 - mudar a extensão da sua classe java p/ jws e copia-la p/ o axis sovai funcionar se sua classe utilizar somente tipos nativos do java, como os primitivos, String, Date e etc. por isso não esta funcionando, pq vc tem uma referencia a um bean que vc criou.
vc vai precisar criar registrar esses novos tipo no arquivo wsdd.
2 - não use Collections como retorno do seu WS. Algumas linguagens não conhecem esse tipo de dado. utilize arrays.