Implementando Aplicativos de Serviços da Web com JAX-WS

Ao iniciar a partir de JavaBeans ou enterprise beans existentes, você pode usar uma abordagem ascendente para desenvolver serviços da Web baseados no modelo de programação Java™ API for XML-Based Web Services (JAX-WS).

Antes de Iniciar

Determine os JavaBeans ou enterprise beans existentes que você deseja expor como um serviço da Web JAX-WS.

boas práticas: IBM® WebSphere Application Server suporta o modelo de programação Java API for XML-Based Web Services (JAX-WS) e o modelo de programação Java API for XML-based RPC (JAX-RPC). O JAX-WS é o modelo de programação de serviços da Web da próxima geração, estendendo a base fornecida pelo modelo de programação JAX-RPC. Ao usar o modelo de programação JAX-WS estratégico, o desenvolvimento de serviços da Web e clientes é simplificado por meio do suporte de um modelo de anotações baseado em padrões. Embora o modelo de programação JAX-RPC e seus aplicativos ainda sejam suportados, aproveite o modelo de programação JAX-WS de fácil implementação para desenvolver novos aplicativos de serviços da web e clientes.

Sobre Esta Tarefa

Para desenvolver serviços da Web baseados no modelo de programação JAX-WS, é possível usar uma abordagem de desenvolvimento ascendente começando a partir de JavaBeans ou enterprise beans existentes ou é possível usar uma abordagem de desenvolvimento descendente começando com um arquivo Web Services Description Language (WSDL) existente. Esta tarefa descreve as etapas ao utilizar a abordagem de desenvolvimento ascendente.

Ao desenvolver serviços da Web JAX-WS começando a partir de JavaBeans ou enterprise beans existentes, é possível expor o bean como um serviço da Web JAX-WS usando anotações. Incluir a anotação @WebService ou @WebServiceProvider no bean define o bean como um serviço da Web JAX-WS. Serviços da Web JAX-WS podem opcionalmente usar uma interface de terminal em serviço. Além de anotar o bean e a interface de terminal em serviço opcional, você deve montar todos os artefatos que o serviço da Web necessita e implementar o aplicativo resultante no ambiente do servidor de aplicativos para concluir o processo de ativação do bean como um serviço da Web. Apesar de o uso de um arquivo WSDL ser considerado uma boa prática, você não é obrigado a compactar um arquivo WSDL com os seus serviços da Web JAX-WS.

Considerações ao Utilizar JavaBeans
  • O JavaBeans exposto como serviços da Web JAX-WS são suportados apenas sobre um transporte HTTP.
  • O JavaBeans pode usar o Contexts and Dependency Injection (CDI). Note que a injeção de construtor não é suportada.
Considerações ao Utilizar Enterprise Beans
  • O enterprise bean deve ser um bean de sessão stateless ou singleton.
  • Enterprise beans que são expostos como serviços da Web JAX-WS devem ser compactados em EJB 3.0 ou módulos mais altos.
  • Os aplicativos JAX-WS que contêm enterprise beans devem ser implementados com o comando endptEnabler.
  • Serviços da Web JAX-WS que usam enterprise beans são suportados sobre um transporte HTTP ou Java Message Service (JMS).
  • Os enterprise beans podem usar o CDI. Note que a injeção de construtor não é suportada.
  • É possível incluir opcionalmente documentos do Web Services Description Language (WSDL) no pacote de aplicativos JAX-WS.

A partir do WebSphere Application Server Versão 7.0 e posterior, nos módulos do aplicativo Java EE 5 (módulos de aplicativo da web versão 2.5 ou superior, ou módulos EJB versão 3.0 ou superior) ocorre a varredura de anotações para identificação de serviços e clientes JAX-WS. Entretanto, os módulos aplicativos pré-Java EE 5 (módulos aplicativos da web versão 2.4 ou anterior, ou módulos EJB versão 2.1 ou anterior) não são digitalizados para anotações JAX-WS, por padrão, para considerações de desempenho. No Feature Pack for Web Services Versão 6.1, o comportamento padrão é digitalizar módulos aplicativos da web pré-Java EE 5 para identificar serviços JAX-WS e digitalizar módulos aplicativos da web pré-Java EE 5 e módulos EJB para clientes de serviço durante a instalação do aplicativo. Como o comportamento padrão para o WebSphere Application Server Versão 7.0 e mais recente é não varrer módulos pré-Java EE 5 para anotações durante a instalação do aplicativo ou inicialização do servidor, para preservar a compatibilidade com versões anteriores com o feature pack de liberações anteriores, deve-se configurar a propriedade UseWSFEP61ScanPolicy no META-INF/MANIFEST.MF de um arquivo web application archive (WAR) ou módulo EJB ou definir a propriedade customizada de Java virtual machine, com.ibm.websphere.webservices.UseWSFEP61ScanPolicy, em servidores para solicitar varredura durante a instalação do aplicativo e inicialização do servidor. Para aprender mais sobre a varredura de anotações, consulte as informações de anotações do JAX-WS.

Procedimento

  1. Configure um ambiente de desenvolvimento para serviços da Web. Você não precisará configurar um ambiente de desenvolvimento se estiver utilizando o Rational Application Developer.
  2. Desenvolvendo Serviços da Web JAX-WS com Anotações
  3. Gere artefatos Java para aplicativos JAX-WS.

    Use o conjunto de ferramentas JAX-WS para gerar os artefatos JAX-WS e JAXB necessários para aplicativos de serviços da Web JAX-WS ao iniciar a partir de componentes JavaBeans ou enterprise beans.

    Se você estiver desenvolvendo um bean de implementação de serviço que seja chamado utilizando-se o transporte HTTP, o arquivo WSDL gerado pela ferramenta de linha de comandos wsgen durante essa etapa será opcional. No entanto, se estiver desenvolvendo um bean de implementação de serviço que seja chamado utilizando-se o transporte SOAP via JMS, o arquivo WSDL gerado pela ferramenta wsgen durante essa etapa será necessário em etapas subsequentes e, portanto, não é opcional.

  4. (opcional) Ative o MTOM para serviços da Web JAX-WS. É possível usar o SOAP Message Transmission Optimization Mechanism (MTOM) para otimizar a transmissão de anexos binários, como imagens ou arquivos juntamente com pedidos de serviços da Web.
  5. (opcional) Imponha a aderência às ligações WSDL em serviços da Web JAX-WS. É possível usar o RespectBindingFeature para controlar se uma implementação JAX-WS é necessária para respeitar o conteúdo de uma wsdl:binding que está associada a um terminal.
  6. (opcional) Desenvolva e configure um descritor de implementação webservices.xml para aplicativos JAX-WS. Ópcionalmente é possível usar o descritor de implementação webservices.xml para aumentar ou substituir os metadados do aplicativo especificados em anotações dentro dos seus serviços da Web JAX-WS.
  7. Conclua a implementação do seu aplicativo de serviço da Web.
  8. (Opcional) Customize padrões de URL no arquivo web.xml. Quando JavaBeans são expostos como terminais JAX-WS, opcionalmente é possível customizar os padrões de URL dentro do descritor de implementação web.xml contido no arquivo web application archive (WAR).
  9. Monte os artefatos para o seu serviço da Web.

    Use as ferramentas de montagem fornecidas com o servidor de aplicativos para montar os seus módulos de serviços da Web baseados em Java.

    Se você montou um arquivo EAR que contém módulos enterprise beans que contêm serviços da Web, use a ferramenta da linha de comandos endptEnabler ou uma ferramenta do conjunto antes da implementação para produzir um arquivo WAR de terminal de serviços da Web. Essa ferramenta é também utilizada para especificar se os serviços da web são expostos utilizando SOAP em Java Message Service (JMS) ou SOAP em HTTP.

  10. Implemente o arquivo EAR no servidor de aplicativos. Agora é possível implementar o arquivo EAR que foi configurado e ativado para serviços da Web JAX-WS no servidor de aplicativos.
  11. Teste o serviço da Web para certificar-se de que o serviço funciona com o servidor de aplicativos.

Resultados

Você desenvolveu um aplicativo JAX-WS.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_devwbsjaxws
Nome do arquivo: twbs_devwbsjaxws.html