Ola gente, venho a umas 2 semana tentando desenvolver WebService com Lista de objetos mais nao estou conseguindo, ja segui varios tutoriais varias buscas no google de varios erros que vim recebendo e etc, estou quase desistindo pois é muito tempo pra uma coisa simples que nao se tem informação na internet, é o seguinte eu ficarei muito grato de pudessem me ajudar porque isso vai ser de extrema importancia para mim…
È o seguinte, para testar webservice como funciona eu comecei fazendo uma classe “Transportadora” que é com anottations é ligada a um banco de dados Mysql, e ela tem uma função que retorna uma List dessa Class Transportadora, que seria todas transportadora do banco de dados, no caso eu fiz isto dai ja dava varios erros de serelização no axis, dai eu pesquisei um monte dia falava sobre um tal de wsdd eu fiz meio na gambiarra e gerou o xml da lista da transportadora via URL no navegador, mais dai quando eu importo no eclipse o webservice ja da erro, monte de merda, nao aguento mais… vou postar a classe transportadora e se voces poderem me falar como deve ser o WSDD e como se faz uma consulta que funcine no eclipse.
Transportadora.java
package com.ueby.griffweb.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import com.ueby.griffweb.annotation.Label;
@Entity
@Table(name="gtransp")
public class Transportadora implements Serializable {
private static final long serialVersionUID = 5847973676816114612L;
@Id
@Label("Codigo da Transportadora")
@Column(name="cd_tr")
private Integer iTransportadora;
@Label("CNPJ da Transportadora")
@Column(name="cgc_tr")
private String cnpj;
@Label("Inscricao Estadual")
@Column(name="insc_tr")
private String ie;
@Label("Nome da Transportadora")
@Column(name="NOM_TR")
private String nome;
@Label("Endereco da Transportadora")
@Column(name="END_TR")
private String endereco;
@Label("Cidade da Transportadora")
@Column(name="MUN_TR")
private String cidade;
@Label("CEP da Transportadora")
@Column(name="CEP_TR")
private String cep;
@Label("Estado da Transportadora")
@Column(name="uf_tr")
private String estado;
public Transportadora() {
}
public Transportadora(Integer iTransportadora, String cnpj, String ie,
String nome, String endereco, String cidade, String cep,
String estado) {
this.iTransportadora = iTransportadora;
this.cnpj = cnpj;
this.ie = ie;
this.nome = nome;
this.endereco = endereco;
this.cidade = cidade;
this.cep = cep;
this.estado = estado;
}
public Integer getiTransportadora() {
return iTransportadora;
}
public void setiTransportadora(Integer iTransportadora) {
this.iTransportadora = iTransportadora;
}
public String getcnpj() {
return cnpj;
}
public void setcnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getie() {
return ie;
}
public void setie(String ie) {
this.ie = ie;
}
public String getnome() {
return nome;
}
public void setnome(String nome) {
this.nome = nome;
}
public String getendereco() {
return endereco;
}
public void setendereco(String endereco) {
this.endereco = endereco;
}
public String getcidade() {
return cidade;
}
public void setcidade(String cidade) {
this.cidade = cidade;
}
public String getcep() {
return cep;
}
public void setcep(String cep) {
this.cep = cep;
}
public String getestado() {
return estado;
}
public void setestado(String estado) {
this.estado = estado;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((iTransportadora == null) ? 0 : iTransportadora.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Transportadora))
return false;
Transportadora other = (Transportadora) obj;
if (iTransportadora == null) {
if (other.iTransportadora != null)
return false;
} else if (!iTransportadora.equals(other.iTransportadora))
return false;
return true;
}
}
A classe que fica no webapps do Axis:
TransportadoraWs.jws
import java.util.List;
import com.ueby.griffweb.dao.DaoException;
import com.ueby.griffweb.dao.InterfaceTransportadoraDAO;
import com.ueby.griffweb.dao.hbm.TransportadoraDAO;
import com.ueby.griffweb.model.Transportadora;
public class TransportadoraWs {
public List<Transportadora> todas() throws DaoException {
InterfaceTransportadoraDAO transp = new TransportadoraDAO();
return transp.todas();
}
}
O arquivo WSDD que eu fiz com base nas pesquisas, eu acho que é ele responsavel de tudu mais eu n sei configurar…
WSDD:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<typeMapping
xmlns:ns="http://localhost:81"
qname="ns:Transportadora"
type="java:com.ueby.griffweb.model.Transportadora"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<service name="TransportadoraWs" provider="java:RPC">
<parameter name="className" value="TransportadoraWs"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
E o WSDL gerado pelo webservice:
[code]
<?xml version="1.0" encoding="UTF-8" ?>- <wsdl:definitions targetNamespace=“http://localhost:81/axis/services/TransportadoraWs” xmlns:apachesoap=“http://xml.apache.org/xml-soap” xmlns:impl=“http://localhost:81/axis/services/TransportadoraWs” xmlns:intf=“http://localhost:81/axis/services/TransportadoraWs” xmlns:soapenc=“http://schemas.xmlsoap.org/soap/encoding/” xmlns:tns1=“http://localhost:81” xmlns:tns2=“http://dao.griffweb.ueby.com” xmlns:wsdl=“http://schemas.xmlsoap.org/wsdl/” xmlns:wsdlsoap=“http://schemas.xmlsoap.org/wsdl/soap/” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
- <!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
–>
- wsdl:types
- <wsdl:message name=“todasResponse”>
<wsdl:part name=“todasReturn” type=“tns1:List” />
</wsdl:message>
<wsdl:message name=“todasRequest” /> - <wsdl:message name=“DaoException”>
<wsdl:part name=“fault” type=“tns2:DaoException” />
</wsdl:message> - <wsdl:portType name=“TransportadoraWs”>
- <wsdl:operation name=“todas”>
<wsdl:input message=“impl:todasRequest” name=“todasRequest” />
<wsdl:output message=“impl:todasResponse” name=“todasResponse” />
<wsdl:fault message=“impl:DaoException” name=“DaoException” />
</wsdl:operation>
</wsdl:portType> - <wsdl:binding name=“TransportadoraWsSoapBinding” type=“impl:TransportadoraWs”>
<wsdlsoap:binding style=“rpc” transport=“http://schemas.xmlsoap.org/soap/http” /> - <wsdl:operation name=“todas”>
<wsdlsoap:operation soapAction="" /> - <wsdl:input name=“todasRequest”>
<wsdlsoap:body encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/” namespace=“http://DefaultNamespace” use=“encoded” />
</wsdl:input> - <wsdl:output name=“todasResponse”>
<wsdlsoap:body encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/” namespace=“http://localhost:81/axis/services/TransportadoraWs” use=“encoded” />
</wsdl:output> - <wsdl:fault name=“DaoException”>
<wsdlsoap:fault encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/” name=“DaoException” namespace=“http://localhost:81/axis/services/TransportadoraWs” use=“encoded” />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding> - <wsdl:service name=“TransportadoraWsService”>
- <wsdl:port binding=“impl:TransportadoraWsSoapBinding” name=“TransportadoraWs”>
<wsdlsoap:address location=“http://zeus:81/axis/services/TransportadoraWs” />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>[/code]
E esse é o resultado na URL (localhost:81/axis/services/TransportadoraWs?methos=todas)
Resultado:
[code]
<?xml version="1.0" encoding="UTF-8" ?>- <soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
- soapenv:Body
- 88801 CRICIUMA SC 19 CORREIO
- 88800 CRICIUMA 00000000000000 SC 20 ITAPEMIRIM CARGAS
- 88805 CRICIUMA 53577961007485 ROD JORGE LACERDA, 900 - B. UNIVERSITARI SC 30 254830862 BRASPRESS BRASIL TRANS INTER
- 0 CRICIUMA 01222681000790 LUIZ ROSSO KM 05 MORRO ESTEVAO SC 14 253508118 NASCIMENTO SUL TRANSP. REP. LT
- 88888000 CRICIUMA 98038771006960 DUARTE DA COSTA, 829 SC 2 251770842 TRANSPORTADORA TRESMAIENSE
- 88801 CRICIUMA ROD JORGE LACERDA KM 5 SC 32 MARGARETE MOLON BENEDETE
- 95180 FARROUPILHA 88085485000104 ROD. RS 122, KM 61 DISTRITO INDUSTRIAL RS 21 045/0025721 PLIMOR LTDA.
- 88801 CRICIUMA RUA CASSIMIRO MILIOLI, 480 SC 37 JEFFERSON FERNANDO B. NUNES
- 88137 PALHOCA RUA DOS PINTASSIUGOS, 263 D SC 43 MARCIO PEIXOTO SCAFFARO
- 88815370 CRICIUMA 05688289000105 RUA IRENE DALPONT MILIOLI, 175 SC 49 LAVANDERIA GLOBAL
- 88804 CRICIUMA DOLARES DOS SANTOS SC 4 AMERICO B. DUARTE
- 88800 CRICIUMA 92673029012835 ROD. GOV. JORGE LACERDA, 900 SC 23 252724380 KWIKASAIR CARGAS EXPRESSAS
- 88802 CRICIUMA CASSIMIRO MILIOLLI, APTO 102 SC 8 ANTONIO CESAR K. DE SOUZA
- 88804760 CRICIUMA RUA QUINTINO BURIGO, 249 SC 31 DIEGO WESLER
- 88820000 ICARA 76877612000129 RUA CAMILO VIEIRA 60 SC 48 251169952 POP LAVANDERIA LTDA
- 88800 CRICIUMA 78874807000140 ROD. JORGE LACERDA - KM 5 SANGAO SC 22 251218635 NOVA ERA IND. E COM. CONF LTDA
- 88883 CRICIUMA O MESMO SC 1 O MESMO
- 88804 CRICIUMA QUINTINO BURIGO, 249 SC 3 DERCIO WESSLER
- 88803470 CRICIUMA 81771669000421 ROD LUIZ ROSSO 784 SC 40 253680670 MTR TRANSPORTES LTDA
- 88805 CRICIUMA 85316289000105 ROD. JORGE LACERDA, 28 BAIRRO SANGAO SC 18 252522605 HESS TRANSP. ROD. SERVICO LTDA
- 88800 CRICIUMA ARTUR DE SOUZA SC 10 ADEMIR H. ALVES
- 95200 CRICIUMA 94988474000137 NATAL, 611 SC 6 LEANDRO DE LIMA PACHECO
- 88810 CRICIUMA RUA PAULO DE FRONTIN, 281 SC 27 FRANK MARTINS
- 00000 BLUMENAU 89317697001880 RUA HEINRICH HEMMER, 3047 SC 44 251944646 TRANSPORTES WALDEMAR LTDA
- 88803 CRICIUMA 01222681000790 ROD. LUIZ ROSSO KM 5 SC 33 253508118 NASCISUL TRANSPORTES LTDA
- 88815 CRICIUMA 04195643000199 MIGUEL PATRICIO DE SOUZA, 1555 SC 16 254.180.094 TRANSPORTE OURO NEGRO
- 89160 RIO DO SUL 60423365002285 RUA RUI BARBOSA, 115 SC 34 254498647 EXPRESSO JOAÇABA
- 89227 JOINVILLE RUA DAS CEGONHAS, 1115 SC 42 VIVIANE DE LIZ
- 88815370 CRICIUMA 44914992002424 RUA IRENE DALPONT 155 JD MARISTELA SC 45 254447490 RODONAVES TRANSPORTES
- 88104 SAO JOSE 60664828002977 RUA SENADOR CARLOS GOMES, 200-B SC 38 254899889 EMPRESA DE TRANSP ATLAS LTDA
- 88802 CRICIUMA RUA CASSIMIRO MILIOLI, 415 SC 35 PAULO ROBERTO OLIVEIRA
- 00000 CRICIUMA 95591723004297 MIGUEL PATRICIO DE SOUZA, 1501 SC 17 251789250 EXPRESSO MERCURIO S/A
- 88850 CRICIUMA EST. GERAL LINHA STA CRUZ, SN SC 9 ADEMIR ANTONIO ZANATTA
- 89041760 BLUMENAU R JOSE RAMOS, 176 SC 46 VILSON MELIN
- 88820000 ICARA 88085485004444 ROD. SC 444 KM 3 S/N SC 50 254353193 PLIMOR TRANSPORTADORA
- 88804 CRICIUMA OTTO L. TIEFENCE, 653 SC 5 WILSON FRITZ
- 89041 BLUMENAU RUA IMPERATRIZ LEOPOLDINA, 210 AP 210 SC 41 ROSELENE DOS SANTOS
- 0 TUBARAO 82637968002727 JORGE LACERDA, 289 SC 13 251768902 AGUIA BRANCA CARGAS LTDA
- 88803 ICARA 82171216000184 ROD ICR 150, 120, SALA 15 SC 15 253.741.270 TRANSMAJ TRANSP. E LOGIS. LTDA
- 88805 CRICIUMA ROD. JORGE LACERDA KM 05 SANGAO SC 25 MARGARETE MOLON BENEDETE
- 0 CRICIUMA MARTINHO BRUNELLI, 264 SC 26 RAFAEL ALEXANDRE ZANATTA
- 88805 CRICIUMA JOAO MANOEL DOS SANTOS SN SC 24 ADEMIR A. BENEDETE
- 88810 CRICIUMA 86046828001682 SILVIO BURIGO, 16 SC 12 251767809 ETSUL TRANSPORTES LTDA
- 88800 CRICIUMA 02787798000199 ROD. SC 443 KM 02 Nº 975 SC 29 253884284 TRANSP MEDEIROS DO SUL LTDA
- 88801 CRICIUMA 04267735000137 RUA HENRIQUE LAGE, 395 SC 39 254176755 TECNOCOSTURA LTDA
- 80811 CRICIUMA RUA PEDRO CECHINEL, 101 SC 36 ALESIO WESSLER
- 88802 CRICIUMA CASSIMIRO MILIOLLI, 480 SC 7 VANDERLEI F. MONDARDO
- 88805 CRICIUMA RUA SAO MARTINHO,N 349 SC 28 JOANES MUNIZ
- 0000000 AMERICANA 43244631000169 AV COMENDADOR THOMAZ FORTUNATO SP 47 165003886115 TRANSPORTADORA AMERICANA LTDA
- 0 SAO PAULO 33727132000250 AV. DAS NACOES, 10989 SP 11 113661181111 PANTANAL LIN. AER. SULMATOG.SA [/code]
O resultado esta certo, o que eu queria agora é que este resultado fosse para uma variavel List dentro de uma aplicação java no eclipse…
Se voces conseguirem me ajudar eu fico muito grato, por favor me ajudem!
Obrigado desde ja!
Que deus o abençoe!