WebServices com JAX-WS - Dúvida básica

Olá a todos.

Estou iniciando os meus estudos com o JAX-WS e fiz uma classe server da seguinte forma:

package br.com.teste.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class TesteWS {
	
	@WebMethod
	public String teste(){
		return "Funciona Funciona";
	}
	
}

Fiz uma classe para publicar o serviço:

package br.com.teste.ws;

import javax.xml.ws.Endpoint; 

public class TestePublisher {

	public static void main(String[] args) {
		
		TesteWS service = new TesteWS();
		
		Endpoint.publish("http://172.22.5.124:9090/teste", service); 
	}

}

Mas quando eu tento rodar o camando para gerar as outras classes não funciona:

C:\Trabalhos\projetos\EstudoEJB\build\classes>wsgen -cp . br.com.teste.ws.TesteWS

Aparece a seguinte mensagem:

Alguêm tem alguma idéia?

Eu estou usando o java 1.6.0_17-b04 e tenho as variáveis de ambientes todas configuradas no micro rodando no Windos.

Obrigado.

Man,

Pela mensagem de erro ele não está reconhecendo esse wsgen…

Por um caso voce adicionou essa lib ao path ?

Pra testar, abra um prompt e digite: SET

  • irá listar as variáveis de ambiente…

Achei que isto já vinha no jdk 6. Eu li isto neste arquigo:

http://www.seducaotecnologica.com.br/tutorial-soa-passo-a-passo-4/
e

Já coloquei as configurações no Path, mas o comando não é identificado.

Segue o meu PATH:
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\warley.mendes\Dados de aplicativos
CLASSPATH=.;JAVA_HOME;D:\aplicacao\java\jaxws-ri\lib
CLIENTNAME=Console
CommonProgramFiles=C:\Arquivos de programas\Arquivos comuns
COMPUTERNAME=COC-RDDS45577
ComSpec=C:\WINDOWS\system32\cmd.exe
EMC_AUTOPLAY=C:\Arquivos de programas\Arquivos comuns\Roxio Shared
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\warley.mendes
JAVA_HOME=C:\Arquivos de programas\Java\jdk1.6.0_17
LOGONSERVER=\SERV20
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Arquivos de prog
ramas\Arquivos comuns\Lenovo;C:\Arquivos de programas\Arquivos comuns\Roxio Shar
ed\10.0\DLLShared;C:\Arquivos de programas\Arquivos comuns\Roxio Shared\DLLShar
ed;C:\Arquivos de programas\Arquivos comuns\Roxio Shared\DLLShared;C:\Arquivos
de programas\Arquivos comuns\Roxio Shared\10.0\DLLShared;C:\Arquivos de progra
mas\jZip;C:\Arquivos de programas\Microsoft SQL Server\80\Tools\BINN;C:\Arquivos
de programas\Java\jdk1.6.0_17\bin;D:\aplicacao\java\jaxws-ri\lib\jaxws-api.jar;
D:\aplicacao\java\jaxws-ri\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

Alguêm tem alguma idéia do que está acontecendo?

Obrigado

da uma lidinha aqui:

https://jax-ws.dev.java.net/nonav/2.1.2/docs/jaxws-tools.html#running_on_jdk6

Ufaaa… FUNCIONOU !!!

vinicius.martinez obrigado pela ajuda. Agora posso continuar os meus estudo!

Mas antes eu vou postar a solução:

1 - Baixe no site https://jax-ws.dev.java.net/ o jar do JAX-WS. Como eu não estou usando (ainda) JEE5 eu baixei a versão JAXWS2.1.7-20090419.jar.
2 - No CMD (do DOS) digite o seguinte comando para executar o jar:

3 - Ao executar a pasta jaxws-ri será criada
4 - Vá no endereço JAVA_HOME\jre\lib e crie a uma pasta com neste nome: endorsed
5 - O nome TEM ser endorsed, senão não funciona!
6 - Copie para a pasta endorsed as lib encontradas em {Caminho onde está a pasta foi descompactada}\jaxws-ri\lib
7 - Nas variáveis do Windows, adicione na variável Path = {Caminho onde está a pasta foi descompactada}\jaxws-ri\bin
Exemplo do meu micro:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;C:\downloads\java\jaxws-ri\bin. Repare a ultima linha C:\downloads\java\jaxws-ri\bin
8 - REINICIE O COMPUTADOR, para que as configurações possam funcionar.
9 - Crie o código que eu coloquei no início do post.
10 - No CMD rode o seguinte comando:

11 - Repare que no CMD eu estou no diretório onde os arquivos .class estão.
12 - Será gerado uma pasta com o nome jaxws e dentro dela tb serão gerados dois arquivos: RetornaTeste.class e RetornaTesteResponse.class
13 - Rode a classe de TestePublisher, no meu caso estou rodando no Eclipse.
14 - Faça um teste no seu navegador: http://localhost:8080/oi?wsdl
15 - Deve aparece um xml e isto significa que a jaca funcionada!
16 - Caso não funcione leia este tutorial http://www.seducaotecnologica.com.br/tutorial-soa-passo-a-passo-1/ e refaça os passo que eu postei.

É isto… espero ter ajudado. :lol:

Um abraço para todos.