Quero comentar um tutorial postado no guj (guj.com.br) sobre a utilização do Apache Axis para o desenvolvimento/publicação/acesso de um WS.

Segue comentários.

Estou querendo realizar alguns teste de produtividade no desenvolvimento de Web Services.

Vou começar criando um projeto Web no Eclipse (com WTP)

(ja foi feito o download do Apache Axis 1.4 anteriormente)

Vou seguir um tutorial interessante que encontrei no site do guj.

http://www.guj.com.br/java.tutorial.artigo.180.1.guj

Entao vamos ver:

So vou fazer algumas coisas diferentes do tutorial pois ja quero ir desenvolvendo no Eclipse.

Primeiro ja copiei todos os jars do apache para o /lib

Depois copiei o conteudo do web.xml que utiliza o recurso do Apache Axis para o web.xml atual da aplicação

Apos criar as classes RecursosHumanos e Empregado vou executar uma linha de comando para geração do WSDL

Ops, vou ter que colocar as classes do Axis no CLASSPATH

Entrar no diretorio bin do projeto (via prompt mesmo)

SET AXIS_HOME=c:/axis-1_4
SET CLASSPATH=%CLASSPATH%;./
SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/lib/axis.jar
SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/lib/saaj.jar
SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/lib/jaxrpc.jar
SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/lib/commons-logging-1.0.4.jar
SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/lib/commons-discovery-0.2.jar
SET CLASSPATH=%CLASSPATH%;%AXIS_HOME%/lib/wsdl4j-1.5.1.jar

java org.apache.axis.wsdl.Java2WSDL -o ../config/resource/rh.wsdl -l"http://localhost:8080/ApacheAxis/services/RecursosHumanosWS" -n "urn:RecursosHumanos" rh.RecursosHumanos

deu alguns erros principalmente por causa da localização dos arquivos.

ou seja, vc tem que executar este comando de dentro de um diretorio que contenha os .class das classes….(Dãããã)

WSDL gerado com sucesso

Executar outro programa agora para gerar as classes de orquestração… Este comando deve ser executado da raiz do seu projeto, indicando qual o diretorio dos fontes

java org.apache.axis.wsdl.WSDL2Java -o ./JavaSource -s -S true -Nurn:RecursosHumanos=rh.ws config/resource/rh.wsdl

Apos a geração de todos os arquivos é preciso instanciar o objeto respectivo e repassar para os metodos deste objeto. Este funciona como uma fachada WS para o teu Objeto (RecursosHumanos), detalhe apenas para o objeto de retorno Empregado

Vamos em frente.

Agora é so rodar a ferramenta de publicação de dentro do diretorio raiz do projeto

java org.apache.axis.client.AdminClient -l"http://localhost:8080/ApacheAxis/servlet/AxisServlet" JavaSource/rh/ws/deploy.wsdd

Depois disso é so acessar pelo browser

http://localhost:8080/ApacheAxis/servlet/AxisServlet

Show de bola…se clicar nos links wsdl é apresentado os WSDL de todos os componentes publicados no Servidor.

Vamos la. Próximo passo fazer um client para acessar os WS.

É lembrado no tutorial da importancia da publicação do WSDL, sem ele nao da para saber como/o que chamar o WebService.

Entrar no diretorio raiz é digitar:

java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/ApacheAxis/services/RecursosHumanosWS?wsdl -o ./JavaSource -p rh.ws.cliente

Show de Bola…foi gerado os arquivos e ta tudo rodando elegancia…

No artigo é apresentado um arquivo de teste cliente que funciona perfeitamente.

Ou seja, a produtividade com o ApacheAxis é muito boa.

Utilizando o mesmo Eclipse WTP é possivel criar um WebService a partir de uma classe de negocio. O processo pode utilizar o Apache Axis e o resultado é mais imporessionante ainda. É quase que Next>>Next>>Finish