Ferramentas de Serviços da Web - Notas sobre o Release

1.0 Introdução
2.0 Software Suportado e Especificações
3.0 Alterações do Release Anterior
4.0 Problemas Conhecidos
   4.1 Web Services Explorer
   4.2 O Servidor de Monitoração TCP/IP não Funciona no Linux
   4.3 Private UDDI Registry
   4.4 Interoperabilidade com Tempo de Execução do IBM SOAP
   4.5 Gerando um Documento WSDL a partir de um Arquivo DADX
   4.6 Gerador JSP de Ferramentas da Web
   4.7 Cenário Hospital
   4.8 Utilizando o Universal Test Client
   4.9 Várias Saídas Permitidas em Determinados Casos com Serviços Web DADX
   4.10 Preferência do Driver JDBC Deve Ser Utilizada Apenas no Linux
   4.11 Necessário Atualizar Arquivos de Exemplo DAD se o Extensor XML Não Estiver Instalado no Diretório Padrão
   4.12 Problemas de Serviços Web DADX
   4.13 Diálogos Pop-up do Explorer Podem Não Ser Exibidos Corretamente se o Mozilla e o Netscape Estiverem em Execução
   4.14 Suporte a Geração de DADX
   4.15 Erros de WSDL Depois de Importar um Arquivo de Serviços de Web do 4.0.x
   4.16 Problemas ao Utilizar o Linux com GTK
   4.17 Utilizando o Servidor Tomcat com o Tempo de Execução AXIS
   4.18 Problemas ao Utilizar a Linha de Comandos de Serviços da Web
   4.19 Criação de Serviço da Web sem um Servidor Existente
   4.20 Gerando Aplicativo de Amostra de Serviços da Web
   4.21 Importando Arquivos WSDL com Autenticação Básica HTTP
   4.22 Problemas com a Utilização do Tempo de Execução do WebSphere v5.0.2
   4.23 Configurando um Grupo DADX com Informações do Datasource
   4.24 Carregando o Localizador de Cliente Utilizando o Universal Test Client
   4.25 Preferências de Recursos Não Observadas
   4.26 Problemas com a Utilização do Tempo de Execução do Apache Axis 1.0
   4.27 JSP de Amostra de Serviço da Web Falhou ao Ser Compilado
   4.28 Erro com Host Local Não Definido
   4.29 Limitações Permanentes ao Utilizar o Tempo de Execução do IBM SOAP
   4.30 Serviço e Cliente da Web Utilizando Tempo de Execução Diferente
   4.31 Clicando em Finish no Assistente Web service client
   4.32 Folha de Macetes de Serviços da Web

1.0 Introdução

O recurso ferramentas de serviços da Web permite descobrir, criar e publicar Java bean, DADX, bean corporativo e serviços da Web da URL. Esse arquivo leia-me descreve problemas conhecidos, limitações e soluções alternativas associados às seguintes funções das ferramentas de serviço da Web:

2.0 Software Suportado e Especificações

Esse release das ferramentas de serviço da Web gera o código que obedece às seguintes especificações:

Esse release das ferramentas de serviço da Web suporta:

Se você estiver ativando o ambiente de testes WORF fora do workbench utilizando o Mozilla, recomenda-se uma versão do Mozilla de pelo menos 1.3.1. A saída da chamada do serviço da Web, bem como arquivos de descrição, podem não ser apresentados corretamente em versões anteriores do navegador Mozilla.

O tempo de execução do DADX requer fixpack 6 ou superior do DB2 7.2 ou DB2 8.1 ou superior.

3.0 Alterações do Release Anterior

Os recursos a seguir são novos nas ferramentas de serviços da Web na v5.1:

4.0 Problemas Conhecidos

4.1 Web Services Explorer

4.2 O Servidor de Monitoração TCP/IP Não Funciona no Linux

O servidor de monitoração de TCP/IP não funciona no Linux. Qualquer tentativa de inserir o servidor de monitoração entre um Web Service e um Web Service client (por exemplo, as JSPs de amostra de serviços da Web, JSPs de Java bean de ferramentas da Web e Universal Test Client) interferirá com as comunicações entre o cliente e o serviço. Em particular, o cliente travará indefinidamente na primeira resposta do serviço. Para recuperar-se dessa condição nas JSPs de amostra ou no UTC, feche todos os navegadores e, em seguida, ative um novo navegador de fora do WebSphere Studio e digite o URL apropriado para as JSPs de amostra geradas ou para o Universal Test Client.

Para monitorar o tráfego de SOAP no Linux, tente outra ferramenta de monitoração como o túnel TCP/IP incluído com o tempo de execução SOAP do Apache, o qual pode ser obtido por download de http://ws.apache.org/soap/index.html.tool. Inicie o túnel e chame uma operação do cliente de serviço da Web. O tráfego do pedido e da resposta devem aparecer no túnel, porém o cliente parecerá suspender. Pare o túnel. Isto fará com que o cliente destrave e a operação seja concluída. Reinicie o túnel antes de tentar a próxima chamada.

4.3 Private UDDI Registry

4.4 Interoperabilidade com Tempo de Execução do IBM SOAP

4.5 Gerando um Documento WSDL a partir de um Arquivo DADX

4.6 Gerador JSP de Ferramentas da Web

O driver DB2 db2java.zip precisa ser adicionado ao caminho ws.ext.dirs class do WebSphere. Para adicionar db2java.zip, faça o seguinte:

  1. Vá para a perspectiva Server Window > Open Perspective > Server.
  2. Na área de janela Configuração do Servidor, expanda Servidor.
  3. Dê um clique duplo em WebSphere v.4.0 Test Environment. O editor da Instância é aberto.
  4. No editor Instance, clique na guia Paths, em seguida clique em Add External JARs na seção WebSphere specific class path (ws.ext.dirs) para adicionar /home/db2inst1/sqllib/java12/db2java.zip ao caminho do WebSphere.
  5. Selecione File > Save (name of file) para salvar as alterações e, em seguida, saia do editor Instance.

Para obter atualizações à documentação do cenário Hospital, vá para o site do WebSphere Developer Domain e clique em Library.

4.8 Utilizando o Universal Test Client

Ao lançar o Universal Test Client do assistente para Web Services, a URL do Provedor JNDI é definida para a porta padrão do WebSphere v5 2809. Se estiver utilizando um servidor WebSphere v4 ou se tiver alterado o número da porta, não será possível pesquisar o diretório JNDI. Se você tentar acessar o diretório JNDI, você obterá o seguinte erro:

IWAD0403E Could not construct the JNDI tree: Caught CORBA.COMM_FAILURE when resolving initial reference=WsnNameService

A solução alternativa é:

  1. Dê um clique duplo no servidor que está utilizando. Isso tornará visível as propriedades do servidor.
  2. Selecione a guia ports.
  3. Copie a porta Orb bootstrap.
  4. Abra a janela de propriedades JNDI no Universal Test Client.
  5. Cole a porta bootstrap na caixa de entrada de texto Provider URL.

4.9 Várias Saídas Permitidas em Determinados Casos com Serviços da Web DADX

Normalmente, a existência de várias saídas em um serviço da Web não é suportada por nossas ferramentas. Entretanto, no caso dos serviços da Web DADX, várias saídas são permitidas se Use Document Style group property for definida para true. Neste caso, quando document style é true, várias saídas são combinadas em um único documento XML.

4.10 Preferência do Driver JDBC Deve Ser Utilizada Apenas no Linux

Uma nova categoria de Preferências dos serviços da Web (Windows > Preferences > Web Services) denominada JDBC drivers foi incluída. Embora esta preferência esteja disponível em todas as plataformas, ela deve ser utilizada apenas no Linux. No Linux, pode ser difícil determinar a localização do arquivo JAR contendo drivers JDBC. Portanto, esta página de preferência foi incluída para que você possa especificar qual arquivo JAR deve ser utilizado. Atualmente, apenas o código de validação DADX utiliza estas informações de arquivo JAR.

4.11 Necessário Atualizar os Arquivos de Exemplo DAD se o Extensor XML Não Estiver Instalado no Diretório Padrão

Os arquivos DAD localizados no diretório WSinstall_dir\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples podem precisar de modificações em dois locais para refletir sua configuração de sistema específica.

Próximo ao início do arquivo há uma linha semelhante a esta:

<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">

Se o extensor XML tiver sido carregado em uma localização diferente de c:\dxx , esta cadeia precisa ser atualizada para refletir a localização atual. Isto aplica-se a máquinas Linux também, onde a localização é geralmente /usr/IBMdb2xml.

4.12 Problemas de DADX dos Serviços da Web

4.13 Diálogos Pop-up do Explorer Podem Não Ser Exibidos Corretamente se o Mozilla e o Netscape Estiverem em Execução

Os diálogos pop-up do Web Services Explorer podem não ser exibidos corretamente se o Mozilla e o Netscape estiverem em execução ao mesmo tempo. Os diálogos pop-up incluem o diálogo Browse WSDL e o diálogo Browse Category. Para solucionar isso, utilize o Mozilla ou o Netscape, mas não ambos ao mesmo tempo.

4.14 Suporte a Geração de DADX

Embora funções definidas pelo usuário sejam listadas no assistente Generate DADX, não existe atualmente suporte para gerar DADX a partir de funções definidas pelo usuário. Somente está disponível suporte para geração de DADX a partir de arquivos DAD, procedimentos armazenados e instruções SQL. A seleção de uma função definida pelo usuário fará com que seja gerado um arquivo de esqueleto DADX simples.

4.15 Erros de WSDL Depois de Importar um Arquivo de Serviços da Web da 4.0.x

Se você importou um arquivo de serviços da Web do 4.0.x, é possível que você receba as seguintes mensagens de erro:

Error The part 'result' has an invalid value 'anyElement' defined for its type. Type declarations must refer to valid values defined in a schema.

Error The part 'return' has an invalid value 'findPatientResult' defined for its element. Element declarations must refer to valid values defined in a schema.

Error The part 'response' has an invalid value 'findPatientResponse' defined for its element. Element declarations must refer to valid values defined in a schema.

A solução alternativa é:

  1. Excluir os arquivos do WSDL.
  2. Gerar seus serviços da Web novamente, re-executando o assistente Web Services.

4.16 Problemas ao Utilizar o Linux com GTK

4.17 Utilizando o Servidor Tomcat com o Tempo de Execução AXIS

4.18 Problemas ao Utilizar a Linha de Comandos de Serviços da Web

4.19 Criação de Serviço da Web sem um Servidor Existente

4.20 Gerando Aplicativo de Amostra de Serviços da Web

4.21 Importando Arquivos WSDL com Autenticação Básica HTTP

Ao gerar esqueletos ou clientes de um arquivo WSDL que possui importações relativas e é protegido por HTTP Basic Authentication, o usuário verá uma mensagem de erro indicando que o arquivo WSDL não pode ser resolvido mesmo se o ID do usuário e a senha corretos forem inseridos. O problema é que o ID do usuário e a senha apenas são utilizados para recuperar o arquivo WSDL original e não os arquivos importados.

Para superar esse problema, o usuário pode fazer download do arquivo WSDL e de todos os arquivos que ele importa primeiro para o workbench e, em seguida, gerar o esqueleto ou o cliente a partir do arquivo WSDL.

4.22 Problemas com a Utilização do Tempo de Execução do WebSphere v5.0.2

4.23 Configurando um Grupo DADX com Informações do Datasource

Se o WebSphere Application Server V5.0 estiver sendo utilizado para acomodar um serviço da Web DADX, então, o arquivo group.properties para o grupo DADX deverá utilizar a seguinte propriedade initialContextFactory:

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

Além disso, o arquivo web.xml do projeto que contém o grupo DADX precisa ter o seguinte adicionado. (Supondo que o nome JNDI do DataSource é jdbc/hospital.)

       <resource-ref id="ResourceRef_1058550453092">
              <res-ref-name>jdbc/hospital</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>CONTAINER</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
 

4.24 Carregando o Localizador de Cliente Utilizando o Universal Test Client

Quando o Universal Test Client não consegue pré-carregar a classe de localizador de cliente gerada pelo tempo de execução do WebSphere v5.0.2 ou Axis, isso ocorre porque o nome da classe do Java bean no projeto Web de serviço é o mesmo que o nome da classe SEI no projeto Web do cliente. Para solucionar esse problema:

  1. Remova o projeto Web do cliente do espaço de trabalho
  2. Crie o projeto Web do cliente em um EAR diferente, onde o nome do projeto EAR precisa estar alfabeticamente à frente do nome do projeto EAR de serviço.   Por exemplo, se o nome do projeto EAR de serviço chamar "DefaultEAR", crie o novo nome do projeto EAR chamado "ClientEAR".
  3. Execute novamente o assistente Web Service.

 

4.25 Preferências de Recursos Não Observadas

As preferências de sobreposição de arquivos, de criação de pasta e de registro de saída de arquivo automático não são observadas na criação de serviços da Web utilizando o tempo de execução do WebSphere v5.0.2 e Axis. A criação de pasta sempre é permitida e o registro de saída de arquivo automático nunca está ativado.

Ao utilizar o tempo de execução do WebSphere v5.0.2, o arquivo WSDL, o SEI e os artefatos de implementação (serializam e deserializam) são sempre sobrescritos. Os artefatos de desenvolvimento (bean de serviço, beans do tipo complexo, portador e classe do ajudante) não são sobrescritos. Entretanto, o usuário receberá um aviso a respeito da sobreposição dos descritores de implementação, se eles já existirem. O usuário pode selecionar OK para sobrescrever os descritores de implementação e continuar com o cenário, ou Cancel para evitar sobrescrever os descritores.

Ao utilizar o tempo de execução do Apache Axis 1.0, os emissores do Axis geram novamente a cada momento todos os arquivos Java do cliente/servidor, deploy.wsdd e undeploy.wsdd. O WSDL2Java para o cenário de geração de serviço gerará apenas o arquivo de implementação de esqueleto, se ele ainda não existir. Se essa implementação já existir, ela não será sobrescrita.

4.26 Problemas com a Utilização do Tempo de Execução do Apache Axis 1.0

4.27 JSP de Amostra de Serviço da Web Falhou ao Ser Compilado

Ao gerar esqueletos de serviços da Web ou proxies de WSDL que utiliza o mesmo nome para um de seu elementos <serviço> elemento e <porta>, não utilize JSPs de amostra como o cliente de teste. Os JSPs de amostra gerados contêm erros e não serão compilados. Qualquer tentativa de executar os JSPs de amostra no servidor resultará em um ERRO 500 no navegador, indicando que os JSPs de amostra não podem ser carregados e as exceções no console do servidor indicando que o contêiner do servlet não conseguiu compilar os JSPs de amostra.

4.28 Erro com Host Local Não Definido

O assistente para criação de Serviço da Web pode falhar durante a geração de WDSL se o nome de host "localhost" não estiver definido no servidor. O UTC também pode não conseguir ativar com êxito se "localhost" não estiver definido.

No Windows, a seguinte entrada deve estar presente no arquivo [INSTALL-DRIVE]\WINNT\system32\drivers\etc\hosts:

127.0.0.1 localhost

No Linux, a seguinte entrada deve estar presente no arquivo /etc/hosts:

127.0.0.1 localhost

4.29 Limitações Permanentes ao Utilizar o Tempo de Execução do IBM SOAP

O tempo de execução IBM SOAP deve ser utilizado principalmente por motivos de compatibilidade anterior. É fortemente recomendado que você utilize o assistente Web Services com o tempo de execução do IBM WebSphere 5.0.2 para todas as finalidades de produção. Ao utilizar o assistente Web Services com o tempo de execução do IBM SOAP, o usuário pode ser executado nas seguintes limitações permanentes:

4.30 Serviço e Cliente da Web Utilizando Tempo de Execução Diferente

Se você criar o serviço da Web de um Java bean ou EJB, escolhendo o IBM SOAP para o tempo de execução de serviço e Apache Axis 1.0 como o tempo de execução do cliente, poderá obter o erro:
WSDL Não Localizado

Para evitar esse problema, primeiro crie o serviço da Web sem optar por gerar um proxy. Em seguida, crie um cliente de serviço da Web a partir do arquivo WSDL gerado.

4.31 Clicando em Finish no Assistente Web service client

Ao executar o assistente Web service client, se o usuário clicar em Finish na página Client Environment Configuration, será obtido o erro:

"null" is not resolvable

A solução alternativa é pressionar Next nessa página e na página seguinte, em seguida, pressionar Finish.

4.32 Folha de Macetes de Serviços da Web

Em Create, test and validate a WS-I compliant Web Service Cheatsheet e Create a Web Service from a WSDL file CheatSheet, se você estiver utilizando o arquivo HelloService.wsdl a partir do wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples, modifique a localização da porta de serviço de acordo com o tempo de execução diferente, da seguinte maneira:

Para IBM Soap:

location="http://localhost:9080/HelloWorldSample/servlet/rpcrouter"

Para o tempo de execução do Apache Axis ou WebSphere 5.0.2

location="http://localhost:9080/HelloWorldSample/services/Hello_Port"

Se você estiver importando seu próprio arquivo wsdl, certifique-se de que a localização esteja correta de acordo com o tempo de execução selecionado, como mencionado acima.

Retornar para o arquivo leia-me principal