Pacote do Aplicativo JAX-WS

É possível compactar um aplicativo Java™ Application Programming Interface (API) for XML Web Services (JAX-WS) como um serviço da Web. Um serviço da Web JAX-WS está contido em um arquivo web application archive (WAR) ou um módulo WAR dentro do arquivo de archive corporativo (EAR).

Um arquivo WAR ativado pelo JAX-WS contém:
  • Um arquivo WEB-INF/web.xml
  • Classes anotadas que implementam serviços da Web contidos no módulo aplicativo
  • [Opcional] Documentos Web Services Description Language (WSDL) que descrevem os serviços da Web contidos no módulo aplicativo
Um arquivo WEB-INF/web.xml é semelhante a este exemplo:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns=”http://java.sun.com/xml/ns/j2ee”
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
         version="2.4">
</web-app>

O web.xml pode conter elementos servlet ou de mapeamento de servlet. Quando as customizações para o arquivo web.xml não são necessárias, o tempo de execução do WebSphere Application Server as definem dinamicamente conforme o módulo é carregado. Para obter mais informações sobre como configurar o arquivo web.xml, consulte os padrões de URL da web customizados no arquivo web.xml para aplicativos de JAX-WS.

As classes anotadas devem conter, no mínimo, uma classe de implementação de serviços da Web que inclui a anotação @WebService. A definição e a especificação das anotações relacionadas a serviços da Web são fornecidas pelas especificações JAX-WS e JSR-181. As classes de implementação de serviços da Web podem existir no diretório WEB-INF/classes ou em um arquivo Java archive (JAR) que esteja contido no diretório WEB-INF/lib do arquivo WAR.

É possível, opcionalmente, incluir documentos WSDL no pacote de aplicativos JAX-WS. Se o documento WSDL para um serviço da Web específico for omitido, então o tempo de execução do WebSphere Application Server construirá a definição WSDL dinamicamente a partir das anotações contidas nas classes de implementação de serviços da Web.

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.

Evitar Problemas Evitar Problemas: Durante a implementação do aplicativo de serviços da web, os jars de utilitário não são verificados quanto a anotações. Portanto, se estiverem compactados em jars de utilitário, os serviços da web não poderão ser detectados pelo mecanismo de serviços da web. Nesse caso, se a opção Iniciar componentes conforme necessário estiver selecionada nas definições de configuração para o servidor de aplicativos, o componente de serviços da web não poderá ser iniciado após o início do servidor de aplicativos, porque não há um serviço da web detectado. Use a propriedade customizada com.ibm.websphere.webservices.StartWebServicesComponent para evitar esse problema.gotcha
Evitar Problemas Evitar Problemas: É altamente recomendável empacotar as classes de Interface de Terminal em Serviço (SEI) e de implementação de quaisquer serviços da web de terceiros com o aplicativo/módulo. O empacotamento dessa maneira assegura que a SEI e as classes de implementação estejam ambas visíveis ao carregador de classes do aplicativo e evita a ocorrência de uma exceção como EndpointInterfaceDescriptionImpl: não é possível localizar a superclasse que foi especificada para essa classe.

Se as classes de SEI e de implementação não puderem ser empacotadas com o aplicativo/módulo, é recomendável empacotar os arquivos jar que contêm essas classes em uma biblioteca compartilhada isolada e associar essa biblioteca compartilhada ao aplicativo/módulo.

gotcha

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



Í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=cwbs_jaxwsapp
Nome do arquivo: cwbs_jaxwsapp.html