Web Services - O que usar?

boa tarde pessoal,

Vou começar um novo projeto e surgiu a necessidade de usar web services para integrar dados de sistemas legados.

Que frameworks, técnicas ou dicas vocês me dariam para trabalhar?
ouvi falar um pouco do XFire, mas ainda não tive tempo de testar, ou será que utilizar SOAP diretamente seria uma boa opção?

aguardo as opiniões :smiley:

se vc for utilizar ejb3 pode contruir seu web servece apartir dele mais tbm tem o axis da apaxe de uma olhada http://ws.apache.org/axis/ espero ter ajudado.

http://xfire.codehaus.org

Caso você seja masoquista, pode usar SOAP direto.

Ou tem a opção de utilizar o Axis ou XFire.
Ou ainda dar uma olhada em alguma solução REST.

Olá

Não use este AXIS que é antigo e ruim. Se for para usar AXIS, use o AXIS 2 1.1.1. Mas antes verifique se o XFire atende as suas necessidades.

Ah, antes que eu me esqueça. Se o projeto é novo e vocês pretendem usar o glassfish, experimente o JAX-WS 2.1.1 RC1

[]s
Luca

opa! valeu pelas indicações…

o fato de eu usar o tomcat, pode gerar alguma limitação?

Precisa ser SOAP, por quê?

não necessariamente, alguma sugestão?
sou um pouco leigo no assunto :stuck_out_tongue:

Cara, estou justamente, neste momento, trabalhando em um projeto de web services.

Estou utilizando o AXIS APACHE 1.4, mas testei também o JAX-WS da Sun.
Gostei dos dois, se possível me mande um e-mail (tem disponível ai no meu usuário do GUJ) solicitando, só para que eu não me esqueça, que ai depois do trabalho eu te mando os materiais que eu tenho.

Forte abraço, espero ajudar.

Olá

  1. Porque não está usando o AXIS 2?
  1. Porque não compartilha com os 20.000 usuários do GUJ?

[]s
Luca

cara, eu vou postar pro Guj. Só vi sua pergunta agora.
É que estou no trabalho, e os documentos que utilizo para pesquisa do AXIS e JAX-WS estão no notebook, este que esqueci em casa hoje, por isso, não tenho cmo mandar agora. E apenas pedi para me lembrar por e-mail para que nao esqueça quando chegar em casa.

devo estar postando este material ainda hoje, por volta de umas 22:30hs | 23hs

Abração

obrigado pela sugestão,

na verdade, já até baixei os binarios do AXIS 2 só não coloquei em produção ainda.

mas vou fazer isso, obrigado pela dica.
Sabe dizer se da versao 1.4 para a versao 2 tem alguma particularidade?

abraços

Olá

Sim, há muitas mudanças. Veja http://ws.apache.org/axis2/1_0/migration.html

Tenha o cuidado de baixar o AXIS 2 1.1.1 pois a 1.0.0 tem bugs

[]s
Luca

[quote=rbamartins]cara, eu vou postar pro Guj. Só vi sua pergunta agora.
É que estou no trabalho, e os documentos que utilizo para pesquisa do AXIS e JAX-WS estão no notebook, este que esqueci em casa hoje, por isso, não tenho cmo mandar agora. E apenas pedi para me lembrar por e-mail para que nao esqueça quando chegar em casa.

devo estar postando este material ainda hoje, por volta de umas 22:30hs | 23hs

Abração
[/quote]

legal!
estamos aguardando :slight_smile:

Se você não sabe porque deveria usar SOAP provavelmente é porque não precisa de SOAP, só fez a associação Webservices==SOAP. Leia sobre REST e POX, duas opções semelhantes que pdoem salvar seu pescoço e sanidade.

vou pesquisar.
tem algum material? :smiley:

sobre a pergunta q vc me passou no email…

vou começar a implementar segurança, no AXIS, a partir de segunda-feira.
voce ta usando o jax-ws entao sua ide eh o netbeans???
compre o livro SOA e WEB SERVICES EM JAVA de Cleuton Sampaio. Muito bom o livro, leitura rápida e fácil entendimento.
caso nao ache, utilizando o axis tem esse link aqui q me ajudou muito.
http://www.javafree.org/content/view.jf?idContent=106
e esse
http://www.guj.com.br/java.tutorial.artigo.180.1.guj

utilizando o jaxws usei a revista java magazine do mes passado q tem um passo-a-passo completo dessa api.

no jax-ws vc nao precisa necessariamente criar o wsdl como no axis
vc precisa agora criar uma classe cliente de seu servico que chame uma referencia do seervico web.
faça o deploy de seu web service e acesse ele pelo browser dessa forma:
exemplo:
digamos q meu servico foi ArquivoService.java
acessarei ele assim
http://localhost/pasta_do_projeto/ArquivoService.java?wsdl
ira abrir o wsdl, um arquivo xml na tela de seu browser
vc pode pelo browser ir em arquivo - salvar como … colocar a extensao .wsdl e se for usar o axis criar o cliente a partir dele, com os plugins do eclipse. usando o jaxws no netbeans vc ira precisar clicar sobre a pasta do seu projeto e depois em new - client for web services e digitar a url completa até o wsdl (http://localhost/pasta_do_projeto/ArquivoService.java?wsdl)
e a partir dai chamar os metodos que seu web services disponibilizou.

qq coisa vai perguntando ai q no que eu puder eu te ajudo.
abraços

[quote=marcushlm]opa! valeu pelas indicações…

o fato de eu usar o tomcat, pode gerar alguma limitação?[/quote]

Sim, tomcat não vem com container de web service…ele é apenas um container web.
Vai precisar baixar um framework pra web services.

Pessoal,

Desculpem se este não é o melhor lugar para este post, mas há pouco comecei a estudar AXIS2 para desenvolver um java client para um webservice feito em vb.net.
Gerei o stub usando o plugin do eclipse wsdl2java (usando none no databinding).
Estou apanhando bastante. Recebo uma mensagem de erro do webservice:

[color=blue]
StarsBridgeWS
1
System.ArgumentNullException: Value cannot be null.
Parameter name: s
at System.IO.StringReader…ctor(String s)
at System.Xml.XmlDocument.LoadXml(String xml)
at StarsBridgeWS.IStarsBridge.LoginSBWS(String strxml)
[/color]

Achei que seria mais fácil…
Alguém por favor já fez isso e tem alguma informação que possa me ajudar?

Estou fazendo a chamada assim:

    		String strXML  = ParamBuilder.montaLogin();

    		ByteArrayInputStream bais = new ByteArrayInputStream(strXML.getBytes());
    		XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(bais);
    		StAXOMBuilder builder = new StAXOMBuilder(reader);
    		OMElement param = builder.getDocumentElement();    		
    		
        	IStarsBridgeStub client = new IStarsBridgeStub();
        	
        	client._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
        	
    		OMElement response = client.LoginSBWS(param);
    		
            System.out.println(response.toString());

Obrigado!

Colocando mais um na pilha - http://incubator.apache.org/cxf/

Gosto bastante da flexibilidade, lida bem com vários Binds diferentes, uso muito XMLBeans por conta dos produtos da BEA.

Ele possui suporte a varios protocolos também … era o antigo Xfire :smiley: