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 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
<?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.


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