uma duvida qdo executei esse metodo abaixo aonde foi criado esse serviço ???
gostaria de saber o caminho e o arquivo ???
se alguém puder me ajudar agradeceria.
abs
public class PublicaService {
public static void main(String[] args){
HelloWeb service = new HelloWeb();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", service);
}
O método publish cria um mini servidor local de testes (só pra isso mesmo) na sua máquina pra que o seu serviço esteja disponível através da url http://localhost:8080/hello .
Pra saber o que ele recebe/retorna de parâmetros vc abre http://localhost:8080/hello?wsdl
Quer dizer vc definiu o serviço na classe HelloWeb, disponibilizou pelo EndPoint.publish e quando vc quizer usar esse serviço , vc cria uma classe client que aponta pra url.
Mais um duvida como fazer isso nomeu servidor pois estou fazendo isso local …
o que fiz local …
Etapas:
1 ? Com o java 6, para criar um web service deve-se usar as anotações @WebService e @WebMethod na sua classe, pois o jdk 6 já vem com a tecnologia jax-ws implementada. Crie a seguinte classe :
@WebService
public class HelloWeb {
@WebMethod
public String hello(String nome) {
return "Hello " + nome;
}
}
2 ? Você deve utilizar a ferramente apt (annotation processing tool) que encontra-se na pasta bin do jdk para gerar as classes do web service. Para isso, dentro do diretório src do seu projeto, use a seguinte linha de comando:
apt pacote\HelloWeb.java
Gera um pacote pacote.javaws com duas classes, uma classe Hello.java para os parâmetros do WebService (no nosso caso String nome do método hello) e outra HelloResponse.java que representa o retorno.
3 - Para publicar o serviço/endpoint e iniciá-lo, use a classe seguinte:
public class PublicaService {
public static void main(String[] args){
HelloWeb service = new HelloWeb();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", service);
}
}
Pronto, o WebService está rodando sem servidor de aplicação nem web container. Tudo isso com javaSE 6 jdk. Para acessar a wsdl dele, usa-se o URL:
http://localhost:8080/hello?wsdl
4 - Para criar o cliente do serviço, o javaSE 6 já vem com as ferramentas necessárias. Precisamos usar o wsimport (na pasta bin do jdk) para gerar as classes do cliente. Com o serviço rodando, fazemos na linha de comando (dentro da pasta src do projeto):
wsimport -keep -p pacote.cliente http://localhost:8080/hello?wsdl
A opção keep não apaga os arquivos fontes e p gera as classes dentro do pacote especificado.
5 - Para chamar o serviço pelas classes geradas, escreva a seguinte classe:
public class TesteServico {
public static void main(String[] args) {
pacote.cliente.HelloWeb port = new HelloWebService().getHelloWebPort();
System.out.println(port.hello("Luis"));
}
}
Minha duvida vou criar uma página JSF pra mostrar o nome na tela o que penso em fazer
um MB que chame o WS conforme TEsteServico…está certo isso ??? sim ou não
Minha duvida é com criar essa estrura Ws no TOMCAT 6 que estou usando na produção
tem que fazer o deploy da aplicação e rodar etapa 2 (como está acima) todas essas etapas …alguém poderi ame ajudar…