1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java + Web Services

Discussão em 'Programação' iniciada por nsilvio, 22 de Fevereiro de 2009. (Respostas: 6; Visualizações: 1350)

  1. nsilvio

    nsilvio Power Member

    Ola a todos,

    Alguém sabe como criar Web Services em java, sem utilizar EJB containers nem o Tomcat?

    Necessito de implementar um web service, mas tenho as seguintes restrições:
    . Apenas posso implementar o serviço. O que implica que tem de ser standard (WS-I Basic 1.1)!
    . A Java VM é a versão 1.5
    . Tem de ser stand alone - não tenho acesso a EJB containers nem o Tomcat

    Para complicar, não posso ser eu a gerar o WSDL. Foi o cliente a definir o WSDL... :mad:


    Alguem tem ideias em como implementar uma solução deste genero?

    Do que investiguei até ao momento, estou a pensar numa das seguintes soluções:
    . Utilizar o servidor HTTP Jetty, e processar as mensagens eu mesmo
    . Utilizar o AxisService incluido no pacote Axis2

    Preferia a segunda solução, mas ainda não consegui disponibilizar o web service (com base no WSDL que tenho) :'(. Alguem sabe configurar o AxisServer?

    Desde já, obrigado por qualquer ajuda...
    Nuno
     
    Última edição: 22 de Fevereiro de 2009
  2. mpssantos

    mpssantos Power Member

    Oi!

    Estas a utilizar que IDE? Eu utilizo no trabalho o Eclipse 3.4 ganymed, e em casa o netbeans. Ambos têm wizards para se criar clientes de web services. Por exemplo, no eclipse tem um wizard no qual indicas o url do webservice ele faz download dos stubs e dos proxies, etc, e somente tens de programar código para invocar os webservices. o projecto pode ser um projecto java simples. dá uma espreitadela, brinca um pc com isso e vais ver que até é simples.
     
  3. nsilvio

    nsilvio Power Member

    Infelizmente não quero fazer apenas um cliente :(
    Preciso de fazer o servidor (Web Service) onde se vão ligar os clientes.

    O problema é que não posso utilizar EJB containers nem o tomcat.
    Isto porque o serviço vai correr dentro de um servidor aplicacional onde isso não é possivel.

    A solução que segui foi utilizar o Jetty e processar as mensagens SOAP eu mesmo.
    O problema agora é conseguir manter-me dentro do standard WS-I Basic 1.1 (standard escolhido para implementar o serviço)
     
  4. Podes utilizar Axis2 ?
    Se sim podes criar un web service autonomo com o axis2 : tens uma pista aqui : http://wso2.org/library/2546

    Exemplo : Classe MyService
    Código:
    [COLOR=#0000ff]public[/COLOR] [COLOR=#0000ff]class[/COLOR] MyService {
    [COLOR=#0000ff]public[/COLOR] String sayHello(String name) {
    [COLOR=#0000ff]return[/COLOR] [COLOR=#ff0000]"Hello "[/COLOR] + name;
    }
    [COLOR=#0000ff]public[/COLOR] [COLOR=#0000ff]int[/COLOR] add([COLOR=#0000ff]int[/COLOR] a, [COLOR=#0000ff]int[/COLOR] b) {
    [COLOR=#0000ff]return[/COLOR] a + b;
    }
    }
    
    
    Classe para publicar o Webservice :
    Código:
    [COLOR=#339933]import org.apache.axis2.AxisFault;[/COLOR]
    [COLOR=#339933]import org.apache.axis2.engine.AxisServer;[/COLOR]
     
    [COLOR=#0000ff]public[/COLOR] [COLOR=#0000ff]class[/COLOR] RunService {
        [COLOR=#0000ff]public[/COLOR] [COLOR=#0000ff]static[/COLOR] [COLOR=#0000ff]void[/COLOR] main(String[] args) [COLOR=#0000ff]throws[/COLOR] AxisFault {
            [COLOR=#0000ff]new[/COLOR] AxisServer().deployService(MyService.[COLOR=#0000ff]class[/COLOR].getName());
        }
    }
    
    O servico esta localizado na url : http://localhost:6060
     
  5. nsilvio

    nsilvio Power Member


    Era mesmo isto que queria utilizar!

    O meu problema foi passar do WSDL para a implementação em Java.
    Utilizando o WSDL2Java, criando uma implementação, e disponibilizando a implementação com AxisServer().deployService(..), não estava a conseguir invocar o Web Service :(

    Confesso que, provavelmente, não investi tempo suficiente em investigar a origem do problema.
    Como tinha prazos apertados, decidi optar pelo servidor Jetty, e processar as mensagens eu mesmo. (Diga-se de passagem que já esta a funcionar:009: )

    De qualquer forma, conheces algum exemplo mais complexo em, como configurar o AxisServer?

    Obrigado,
    Nuno
     
  6. AwakE

    AwakE Banido

    O que queres dizer com "o serviço vai correr dentro de um servidor aplicacional"? Qual, qual a tecnologia? Suponho que seja Java para estares a desenvolver em Java.
     
  7. nsilvio

    nsilvio Power Member

    Alcatel-Lucent Application Server

    O serviço é desenvolvido em Java, e corre dentro do Alcatel-Lucent Application Server.
     

Partilhar esta Página