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 Servidor de Monitoração TCP/IP não Funciona no Linux
   4.3 Registro de UDDI Privado
   4.4 Interoperabilidade com o 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 da 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 da 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 do WSDL Depois da Importação de um Arquivo de Serviços da Web da 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 Problema com a Criação de Serviços da Web EJB com o Tempo de Execução WebSphere v5.0.2
   4.19 Problemas ao Utilizar a Linha de Comandos de Serviços da Web
   4.20 Criação de Serviço da Web sem um Servidor Existente
   4.21 Gerando Aplicativo de Amostra de Serviços da Web
   4.22 Importando Arquivos WSDL com Autenticação Básica HTTP
   4.23 Problemas ao Utilizar o Tempo de Execução do WebSphere v5.0.2
   4.24 Configurando um Grupo DADX com Informações de Origem de Dados
   4.25 Carregando o Localizador de Clientes Utilizando o Universal Test Client
   4.26 Preferências de Recursos Não Observadas
   4.27 Problemas ao Utilizar o Tempo de Execução do Apache Axis 1.0
   4.28 JSP de Amostra de Serviço da Web Falhou ao Compilar
   4.29 Erro com Host Local não Definido
   4.30 Limitações Permanentes ao Utilizar o Tempo de Execução do IBM SOAP
   4.31 Serviço da Web e Cliente Utilizando Tempo de Execução Diferente
   4.32 Clicando em Finish no Assistente Web Service Client
   4.33 Selecionando Projeto Roteador ao Criar Serviços da Web EJB
   4.34 Criando Serviços da Web EJB ou Estrutura EJB Utilizando a Linha de Comandos
   4.35 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 do URL. Esse arquivo readme 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 WORF test environment fora do workbench utilizando o Mozilla, pelo menos o Mozilla versão 1.3.1 é recomendado. A saída da chamada de seu serviço da Web e dos arquivos de descrição pode não ser processada corretamente em versões anteriores do navegador Mozilla.

O tempo de execução DADX requer o DB2 7.2 FixPak 6 ou superior, ou o 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 Servidor de Monitoração TCP/IP Não Funciona no Linux

O servidor de monitoração TCP/IP não funciona no Linux. Qualquer tentativa de inserir o servidor de monitoração entre um Serviço da Web e um cliente de Serviço da Web (por exemplo, as JSPs de amostra do serviço da Web, as JSPs de Java bean de ferramentas da Web e o Universal Test Client) interferirá na comunicação entre o cliente e o serviço. Na verdade, 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, 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 do SOAP no Linux, tente outra ferramenta de monitoração, como o TCP/IP tunnel, incluído com o Apache SOAP runtime que pode ser transferido por download do endereço 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 de pedidos e respostas deve aparecer no túnel, no entanto, o cliente aparecerá para suspender. Pare o túnel. Isso fará com que o cliente seja destravado 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 o 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 do DB2 db2java.zip deve ser adicionado ao caminho da classe do WebSphere ws.ext.dirs. Para adicionar o 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 Instance editor, 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 (nome do arquivo) para salvar suas alterações, em seguida saia do Instance editor.

Para obter atualizações da documentação do cenário Hospital, vá para o 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, o URL do Provedor JNDI é definido 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 Somente 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_<versão>\samples\DADX_examples podem precisar de modificações 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 Serviços da 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

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 Browse Category. A solução alternativa é utilizar o Mozilla ou o Netscape, mas não ambos ao mesmo tempo.

4.14 Suporte a Geração de DADX

Apesar das funções definidas pelo usuário serem listadas no assistente Generate DADX, atualmente não há nenhum suporte para gerar DADX a partir de funções definidas pelo usuário. O suporte está disponível somente para a geração de DADX a partir de arquivos DAD, procedimentos armazenados e instruções SQL. A seleção de um UDF fará com que um arquivo de esqueleto simples do DADX seja gerado.

4.15 Erros do WSDL Depois da Importação de um Arquivo de Serviços da Web da V4.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. Exclua os arquivos do WSDL.
  2. Gere seus serviços da Web novamente, re-executando o assistente Web Services.

4.16 Problemas ao Utilizar o Linux com o GTK

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

4.18 Problema com a Criação de Serviços da Web EJB com o Tempo de Execução WebSphere v5.0.2

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

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

4.21 Gerando Aplicativo de Amostra de Serviços da Web

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

Ao gerar estruturas ou clientes a partir de um arquivo WSDL que tenha importações relativas e a Autenticação Básica HTTP protegida, o usuário verá uma mensagem de erro indicando que o arquivo WSDL não pode ser resolvido mesmo que sejam inseridos o ID de usuário e senha corretos. O problema é que o ID de usuário e senha são utilizados apenas para recuperar o arquivo WSDL original, e não os arquivos que ele importa.

Para resolver esse problema, o usuário pode fazer download do arquivo WSDL e de todos os arquivos que ele importa para o workbench primeiro, depois gerar a estrutura ou cliente a partir do arquivo WSDL transferido por download.

4.23 Problemas ao Utilizar o Tempo de Execução do WebSphere v5.0.2

4.24 Configurando um Grupo DADX com Informações de Origem de Dados

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

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

Além disso, o arquivo web.xml para o projeto contendo o grupo DADX precisa ter o seguinte adicionado. (Dado que o nome JNDI da origem de dados seja 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.25 Carregando o Localizador de Clientes Utilizando o Universal Test Client

Quando o Universal Test Client é incapaz de 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 de bean Java no projeto da Web do serviço é o mesmo que o nome da classe SEI no projeto da Web do cliente. Para solucionar esse problema:

  1. Remova o projeto da Web do cliente do espaço de trabalho
  2. Crie o projeto da Web do cliente sob um EAR diferente, no qual o nome do projeto EAR deve estar alfabeticamente na frente do nome do projeto EAR do serviço.  Por exemplo, se o nome do projeto EAR de serviço for denominado "DefaultEAR", crie o novo nome de projeto EAR denominado "ClientEAR".
  3. Execute novamente o assistente Web Service.

 

4.26 Preferências de Recursos não Observadas

As preferências de sobrescrever arquivo, criação de pasta e registro de saída de arquivo automático não são observadas ao criar 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 é ativado.

Ao utilizar o tempo de execução do WebSphere v5.0.2, o arquivo WSDL, SEI e artefatos de implementação (serializadores e desserializadores) sempre são sobrescritos. Os artefatos de implementação (bean de serviço, beans de tipos complexos, classe holder e helper) nunca são sobrescritos. No entanto, o usuário receberá um aviso sobre sobrescrever os descritores de implementação, se eles existirem. O usuário pode escolher OK para sobrescrever os descritores de implementação e continuar no cenário ou Cancel para evitar que os descritores sejam sobrescritos.

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

4.27 Problemas ao Utilizar o Tempo de Execução do Apache Axis 1.0

4.28 JSP de Amostra de Serviço da Web Falhou ao Compilar

Ao gerar estruturas de serviço da Web ou proxies a partir do WSDL que utiliza o mesmo nome para um de seus elementos <serviço> e <porta>, não utilize JSPs de amostra como o Test Client. 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ão em um ERROR 500 no navegador indicando que os JSPs de amostra não podem ser carregados, e exceções no console do servidor indicando que o contêiner do servlet não foi capaz de compilar os JSPs de amostra.

4.29 Erro com Host Local não Definido

O assistente Web Service creation falhará durante a geração do WSDL se o nome do host "localhost" não for defnido no computador. O UTC também pode não ser ativado com êxito se "localhost" não for definido.

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

127.0.0.1 localhost

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

127.0.0.1 localhost

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

O tempo de execução do IBM SOAP deve ser utilizado principalmente por razões de compatibilidade reversa. É altamente recomendado que você utilize o assistente Web Services com o tempo de execução do IBM WebSphere 5.0.2 para todos os propósitos de produção. Ao utilizar o assistente Web services com o tempo de execução do IBM SOAP, o usuário pode se deparar com as seguintes limitações permanentes:

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

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

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

4.32 Clicando em Finish no Assistente Web Service Client

No assistente Web Service Client, se o usuário clicar em Finish na página Client Environment Configuration, ele obterá o erro:

"null" is not resolvable

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

4.33 Selecionando Projeto Roteador ao Criar Serviços da Web EJB

Ao criar um serviço da Web a partir do EJB, na página Service Deployment Configuration, assegure que o Projeto Roteador esteja no mesmo EAR (Enterprise Archive) que o projeto EJB. Caso contrário, você não será capaz de chamar o serviço da Web. Por exemplo, se utilizar o tempo de execução do WebSphere 5.0.2, quando tentar chamar o serviço da Web, você obterá o erro:

Could not find Webservices engine.

4.34 Criando Serviços da Web EJB ou Estruturas EJB Utilizando a Linha de Comandos

4.35 Folha de Dicas de Serviços da Web

Nas folhas de dicas Create, test and validate a WS-I compliant Web Service e Create a Web Service from a WSDL file, se estiver utilizando o arquivo HelloService.wsdl a partir de 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 diferente tempo de execução, conforme segue:

Para IBM SOAP:

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

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

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

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

Retornar para o arquivo Leia-me principal