Bom dia a todos.
Estou tendo que implementar um web service em java, escolhi o axis, pelo que li parace ser uma boa alternativa.
Crieu um jws e coloquei do diretório o axis e rodou beleza, consegui consumir o serviço tranquilo.
Mas estou meio perdido em como fazer este serviço interagir com minha aplicação, por exemplo tenho meus models e tal e a aplicação completa com views e tudo, e queria colocar estas classes de serviço junto na aplicação, como fazer isso, para que o meu jws tenha acesso aos meus models por exemplo?
Obrigado desde já.
Eu não entendi muito bem, mas você tem que colocar o jar da sua aplicação web service no classpath da sua outra aplicação. Sei lá se é isso que você quer, seja mais específico
Desculpe se não soube me explicar.
Estou querendo o seguinte.
Desenvolver uma aplicação web normal, MVC, e tal, e disponibilizar um web service com alguns dados referentes a esta aplicação.
Mas no meu teste com Axis, consegui apenas rodar um web service bruto, que não acessa dados, nem faz uso de classes do sistema web.
Gostaria de integrar isso, para que eu possa no web service fazer uma consulta baseada em um DAO do meu sistema.
Como fazer isto?
Obrigado.
Você pode criar o serviço dentro da sua aplicação web. Ou deixa 2 projetos separados, um com sua aplicação web normal e outro que é só o serviço. Coloca o jar do seu projeto serviço dentro da aplicação web. Pronto, você consegue a partir da chamada ao WS acessar qualquer classe da outra aplicação
Humm…
Deixa ver se eu entendi.
Eu crio uma aplicação web normal no eclipse por exemplo, com meus models. Coloco as bibliotecas do axis no classpath do meu projeto, crio a classe do web service, e faço um deploy da aplicação.
Seria mais ou menos isso?
Sim pode ser desta forma. Acho que não precisa colocar o Axis no classpath, acho que o Eclipse já faz isso quando você chama o Wizard…
Desta forma está funcionando.
Porém estou tento problemas para passar uma array de objetos do tipo Pessoa[]. Só consigo passar tipos primitivos.
Como posso resolver isso?
Pelo que li em alguns fóruns poderia usar o axis2, mas como fazer o eclipse reconhecer ele para o wizard?
O Erro que recebo é o seguinte:
PessoaService does not comply to one or more requirements of the JAX-RPC 1.1 specification, and may not deploy or function correctly.
Como você tá usando tipos complexos, o tipo tem que ser compatível com a especificação JAX-RPC 1.1. Tenta usar o Axis 2 que é mais atual ou então usa o JAX-WS do java6 que é compatível com JAXB.
Estou usando o eclipse e ele usa usa JAX-WS no projeto pelo que parece. Mas o erro está relacionado ao JAX-RPC e gera esse erro da mesma forma.
Como poderia fazer para usar Axis2 no eclipse? pois o axis vem por padrão, ou estou errado?
Achei um local onde posso escolher o tipo. Axis ou Axis 2 no eclipse, só que quando eu escolho o Axis2 e clico em next tenho o seguinte erro:
Unable to add the follwing facets to project Svc: Axis2 Web Services Extensions, Axis2 Web Services Core.
Ahh…
Agora sim consegui.
Só precisava selecionar o axis 2, e precisava configurar em preferences->Web Services o caminho para alguma pasta contendo o war do axis2. Configurei e funcionou certinho. Mandei gerar o service e rodou legal.
Obrigado pela ajuda. Resolvido.