Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

JAX-WS com Servidor Jetty

Bom dia, estou fazendo para fins de estudo um Web-Service, porém, não consigo usar o web service quando rodo pelo Servidor de Applicação Jetty, e acredito que seja problema de configuração, segue o código:

@WebService
public interface PessoaJuridica {

    @WebMethod(operationName = "criarPessoaJuridica")
    String criarPessoaJuridica();

}
@WebService(serviceName = "PessoaJuridica")
public class PessoaJuridicaImpl implements PessoaJuridica {

    @Override
    public String criarPessoaJuridica() {
        return "Hello World!";
    }

}

Se eu uso dessa forma abaixo, funciona perfeitamente:

public class teste {

    public static void main(String[] args){
        Endpoint.publish("http://localhost:8080/ws/hello", new PessoaJuridicaImpl());
    }

}

Porém estou rodando o projeto no Jetty, e eu não consigo acessar a URL do wsdl, pelo que estou vendo, o Jetty não está colocando como um Web Service, alguém ai saberia me dizer que tipo de configuração preciso fazer no projeto para que funcione?

1 resposta
solução!

Olá, Fellipe.

Você poderia rodar o seu Web Service:

  • em um Servlet Container como o Jetty ou Tomcat
  • em um Servidor de Aplicação como Wildfly ou Glassfish

Em um Servidor de Aplicação, simplesmente funciona. Os Servidores de Aplicação já vem com uma implementação do JAX-WS embutida dentro deles.

Para você rodar dentro de um Servlet Container, você vai precisar de uma implementação do JAX-WS como os projetos:

Para rodar o Metro no Jetty, basta baixar os JARs do Metro e colocá-los na pasta lib/metro do Jetty. No arquivo start.ini, insira no final: OPTIONS=metro

Mais detalhes: https://www.eclipse.org/jetty/documentation/9.4.x/framework-metro.html