WebService usando AXIS 2... Iniciante

7 respostas
P

Olá,

alguém conhece algum tutorial passo a passo sobre uso AXIS 2 …se for em portugues melhor ainda…

Pois a versão fiz uns testes mas qdo uso metodo do retorno List,Collection da erro …e falaram que a versão 2 trata esses erros .

Se alguém puder me ajudar agradeceria…

abs
abs

7 Respostas

2

Tive esse problema com o axis também, eu retornava uma List e dava CastException.

Tenta retornar um array (String []) ao invés da List, comigo funcionou.

Abraços

P

Olá,

mesmo alterando de List para Array está dando erro ???Por que será???

qdo vou There is a Web Service here

Click to see the WSDL

gerar dá o erro abaixo usando AXIS 1.4

Mais uma duvda a class Cliente tem que jogar o ponto class junto com a classe .jws ???

abs

1. 1.    1. AXIS error      
   2. 2.    2.       
   3. 3.    3. Sorry, something seems to have gone wrong... here are the details:      
   4. 4.    4.       
   5. 5.    5. Fault - Error while compiling:  C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis\WEB-INF\jwsClasses\Servico.java      
   6. 6.    6.       
   7. 7.    7. AxisFault      
   8. 8.    8. faultCode: {http://xml.apache.org/axis/}Server.compileError      
   9. 9.    9. faultSubcode:       
  10. 10.   10. faultString: Error while compiling:  C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis\WEB-INF\jwsClasses\Servico.java      
  11. 11.   11. faultActor:       
  12. 12.   12. faultNode:       
  13. 13.   13. faultDetail:       
  14. 14.   14.     {}Errors:Error compiling C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis\WEB-INF\jwsClasses\Servico.java:      
  15. 15.   15. Line 11, column -1:  cannot find symbol      
  16. 16.   16. Line 12, column -1:  cannot find symbol      
  17. 17.   17. Line 12, column -1:  cannot find symbol      
  18. 18.   18. Line 14, column -1:  cannot find symbol      
  19. 19.   19. Line 14, column -1:  cannot find symbol      
  20. 20.   20. Line 20, column -1:  cannot find symbol      
  21. 21.   21. Line 26, column -1:  cannot find symbol      
  22. 22.   22. Line 0, column 0:       
  23. 23.   23. 7 errors      
  24. 24.     
  25. 25. AXIS error Sorry, something seems to have gone wrong... here are the details: Fault - Error while compiling: C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis\WEB-INF\jwsClasses\Servico.java AxisFault faultCode: {http://xml.apache.org/axis/}Server.compileError faultSubcode: faultString: Error while compiling: C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis\WEB-INF\jwsClasses\Servico.java faultActor: faultNode: faultDetail: {}Errors:Error compiling C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis\WEB-INF\jwsClasses\Servico.java: Line 11, column -1: cannot find symbol Line 12, column -1: cannot find symbol Line 12, column -1: cannot find symbol Line 14, column -1: cannot find symbol Line 14, column -1: cannot find symbol Line 20, column -1: cannot find symbol Line 26, column -1: cannot find symbol Line 0, column 0: 7 errors    
  26. 26. view plaincopy to clipboardprint?    
  27. 27.     
  28. 28.    1. import java.util.ArrayList;      
  29. 29.    2. import java.util.List;      
  30. 30.    3.       
  31. 31.    4.       
  32. 32.    5.       
  33. 33.    6. public class Servico {      
  34. 34.    7.      public int soma(int valor1, int valor2) {      
  35. 35.    8.           return valor1 + valor2;      
  36. 36.    9.        }       
  37. 37.   10.            
  38. 38.   11.      public Cliente[] getClientes(int codigo){      
  39. 39.   12.          Cliente[] clientes = new Cliente[3];      
  40. 40.   13.                
  41. 41.   14.          Cliente cli = new Cliente();      
  42. 42.   15.          cli.setCodigo(10);      
  43. 43.   16.          cli.setNome("Jose da Silva");      
  44. 44.   17.          cli.setEndereco("Rua 1");      
  45. 45.   18.          clientes[0]=cli;      
  46. 46.   19.                
  47. 47.   20.          cli = new Cliente();      
  48. 48.   21.          cli.setCodigo(20);      
  49. 49.   22.          cli.setNome("Mario da Silva");      
  50. 50.   23.          cli.setEndereco("Rua 2");      
  51. 51.   24.          clientes[1]=cli;      
  52. 52.   25.                
  53. 53.   26.          cli = new Cliente();      
  54. 54.   27.          cli.setCodigo(30);      
  55. 55.   28.          cli.setNome("Um da Silva");      
  56. 56.   29.          cli.setEndereco("Rua 3");      
  57. 57.   30.          clientes[2]=cli;      
  58. 58.   31.                
  59. 59.   32.          return clientes;      
  60. 60.   33.      }      
  61. 61.   34. }
2

Seguinte, se você reparar no erro que deu, as linhas que ele está reclamando são todas que usam a classe Cliente. Eu não vi nas suas importações essa classe. O problema pode ser só esse. Coloca o import de todas classes que usa no service que acho que não vai ter problemas.

Respondendo a sua pergunta sobre jogar ou não o .class, não precisa! Você só precisa jogar o .jws, e configurar corretamente no web.xml para que o caminho do webService esteja correto.

Levando em conta que vc colocou todas libs e configurou corretamente o web.xml, só nos resta o erro na classe do service mesmo, provavelmente é só corrigir as importações.

Qualquer coisa posta denovo aí q agente vai tentando. Abraços.

P

Obrigado pelo retorno…

Como nunca tinha feito um webservice comecei pelo metodo soma…

Ai tentei melhorar criando metodo public Cliente[] getClientes(int codigo){

Poderia me passar algum exemplo de como configurar web.xml pois não configurei nada nesse arquivo.

Se puder me ajudar agradeceria.

abs

P

esqueci de acrescentar mais uma coisa pois estou usando o contexto axis.

pois copiei do jar abaixo webapps o contexto axis e copiei no tomcat por isso não mexi no web.xml???

2

Segue abaixo a configuração que vc tem que colocar no web.xml:

<!-- **************** Configuração para o Web Service **************** -->
    <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>AdminServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
        <load-on-startup>100</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>SOAPMonitorService</servlet-name>
        <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
        <init-param>
            <param-name>SOAPMonitorPort</param-name>
            <param-value>5001</param-value>
        </init-param>
        <load-on-startup>100</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>SOAPMonitorService</servlet-name>
        <url-pattern>/SOAPMonitor</url-pattern>
    </servlet-mapping>
<!-- **************** Fim da configuração **************** -->

Essas configurações são as padrões que eu achei na net. O importante é vc verificar no AxisServlet o caminho correto de onde está o seu .jws

Lembrando que essa configuração é colocada no web.xml de quem está provendo o serviço, e não de quem está usando. Fanzendo isso provavelmente irá funcionar.

Abraços

flaviojmendes

Cara, dá uma olhada no meu tutorial… acho que ele pode te ajudar:
http://www.flaviojmendes.com/blog/2011/02/13/tutorial-implementando-o-primeiro-webservice-com-java/

Abraço!

Criado 30 de julho de 2009
Ultima resposta 29 de fev. de 2012
Respostas 7
Participantes 3