Web Service retornando List

Eu estou usando Eclipse 3.2 + Callisto + Tomcat 5.0.28

Eu coloquei todas as bibliotecas do axis1.4 no classpath.

Estou com problema quando eu tento retornar uma lista de um web service.
Eu consigo criar o Web Service desde que eu retorne uma String ou algum outro tipo primitivo. Mas quando eu tento retornar uma lista ou um array de objetos(Pessoa[]). Ocorre um erro.

Quando eu declaro o tipo de retorno do meu web service como List. O eclipse não gera o web service. Ele diz que a versão jaxrpc1.1 não reconhece Listas.

Quando eu tento retornar JavaBean ou um array de JavaBeans. Ocorre um erro:

AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException

Independente de ser uma lista ou não, o result.jsp, que o eclipse gera, exibe o seguinte erro:

[code]HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from
fulfilling this

request.

exception

javax.servlet.ServletException: javax/xml/rpc/ServiceException
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NoClassDefFoundError: javax/xml/rpc/ServiceException
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:1618)
java.lang.Class.getConstructor0(Class.java:1930)
java.lang.Class.getConstructor(Class.java:1027)[/code]

Aguardo dicas.

Obrigado

Olá

  1. http://ws.apache.org/axis/java/user-guide.html#HowYourJavaTypesMapToSOAPXMLTypes

  2. Veja o antido JAX-RPC em http://java.sun.com/xml/downloads/jaxrpc.html#jaxrpcspec11

  3. JAX-RPC agora virou JAX-WS. Pelo que sei JAX-WS suporta arrays de qualquer tipo de dados suportado, inclusive objetos Java (value types). Veja o tutorial de Web Services da Sun versão 2.0.

  4. Melhor dica:
    Troque o Axis 1.4 pelo Axis 2.0. Veja como em http://ws.apache.org/axis2/1_0/migration.html
    (e depois ainda experimente o XFire 1.2.1 que suporta Collections of Collections)

[]s
Luca

Olá

Vou reformular minha sugestão. Não use o Axis. Não use nem o Axis 1.4 e nem o Axis 2.

O Axis 1.4 é péssimo de desempenho e tem sérias limitações. E o Axis 2 versão 1.0 ainda é bugento. Use o XFire.

O projeto XFire vai se juntar com o projeto Celtix da ObjectWeb e se transformará no Celtixfire justamente hospedado pela Fundação Apache. O celtix já tem suporte a JAX-WS quase pronto. Depois da junções dos projetos pode ser que o Axis 2 fique em clara desvantagem. Então comece logo com o XFire que parece bem estável. O José Peleteiro aqui do GUJ é um dos commiters de lá e pode fornecer mais informações.

[]s
Luca

Olá Luca,

Obrigado pelas dicas.

Vou testar o que você sugeriu. Caso eu encontre alguma dificuldade eu escrevo novamente.

[]s

Marcos