[RESOLVIDO] Hospedar webservice com tomcat

9 respostas
I

Galera, preciso de uma ajuda…tenho 2 dúvidas e gostaria de uma ajuda…

Eu criei um ws e consigo acessar as funcionalidades quando está tudo instalado local (tomcat 6 + apache axis), mas quando tendo colocar o ws no meu ftp…não funciona…alguém pode me indicar algum artigo que ensine a hospedar um ws utilizando tomcat + axis ou axis2?

A segunda questão é: O TomCat 7 tem alguma incompatibilidade com o Axis?

Realmente estou com dificuldades…quando faço meus testes locais…tudo funciona 100%, mas tenho q aprender a hospedar um WS…

Agradeço qq ajuda

9 Respostas

P

vc faz o deploy com .war ?

att,

I

sim…eu gerei o arquivo .war e “subi” para o webapps do tomcat instalado no serviço de hospedagem

E

Boa tarde !!!

Conseguiu solucionar o seu problema ?? Se sim… por favor poste a solução para que possa ajudar outros.

P

ederson.js,

qual dificuldade vc esta tendo?

att,

I

galera, desculpem a minha negligência, mas eu realmente esqueci manter o post atualizado…vou explicar como resolvi esse problema.
1- Copiei a pasta com o axis para a pasta webapps do tom cat que tenho hospedado.
2- Criei uma classe que será meu webservice e salvei com a extensão .jws
3- Copiei os pacotes contendo os arquivos .class do projeto para a pasta WEB-INF/classes do axis que eu coloquei no tom cat…
4- Reiniciei o TomCat

Para acessar os métodos do web service eu utilizei o código abaixo:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class UsuarioDAOTeste {

	public static void main(String[] args) {
		
		try {

			// Passando a url do webservice do ftp
			String url = "http://www.igorthurler.com/axis/UsuarioDAO.jws?";
			
			// Criando o servico
			Service service = new Service();
			
			Call call = (Call) service.createCall();
			
			// Atribuindo a url
			call.setTargetEndpointAddress(url);
			
			// Definindo qual método será executado
			call.setOperationName("retornarTodos");
			
			// Criando lista de parâmetros
			Object[] parametros = new Object[1];
			
			// Invocando métodos passando os parâmetros noa forma de array
			// Como o método retornarTodos não possui parâmetros, eu passo um array vazio
			String[] retorno = (String[]) call.invoke(parametros);
			
			for (String u: retorno) {
				System.out.println(u);
			}
						
		} catch (Exception e) {
			e.printStackTrace();
		}		
		
	}
	
}

Essa forma resolveu meu problema…mas no meu exemplo eu soh consegui retornar um array com tipos primitivos, não consegui retornar objetos…por exemplo objetos da classe Usuario, e isso está sendo um novo problema…alguém sabe como fazer?

Espero ter sido claro…qq dúvida eh soh perguntar

P

igorthurler vc já experimentou copiar todas as libs do axis e adicionar a sua aplicação e em seguinda exportar o .war?

att,

I

isso eu não tentei…vou tentar fazer novamente gerando o .war e hospedando e vou tentar fazer da forma como vc indicou…assim q eu tiver resultados eu posto

W

Tambem acho

I

Senhores, desculpem a demora…consegui colocar o webservice no ar da seguinte forma:
1- Criei uma classe java normal com os métodos que precisei.
2- Salvei essa classe com a extensão .jws
3- Coloquem essa classe na pasta axis que está no diretório webapps do tom cat.
4- copiei todos os arquivos .class das classes que são utilizadas pelo WS e coloquei na pasta classes do axis
5- copiei todas as libs necessárias para a pasta lib do axis.

obs: Quanto as informações, transitei todas como tipo primitivo mesmo e tratei dentro do WS, pegando os dados e transformando em objetos.

Feito isso, foi só executar o tom cat e consumir o wsdl

Criado 11 de junho de 2011
Ultima resposta 11 de dez. de 2011
Respostas 9
Participantes 4