Ferramentas da Web - Notas sobre o Release

1.0 Introdução
2.0 Alterações do Release Anterior
3.0 Limitações
   3.1 Função de Seleção de Cores no Sistema de Janelas GTK
   3.2 Impossível Entrar Kanji DBCS Utilizando a Janela de Candidato no Web Site Designer
   3.3 Casos em que um Gabarito de Página Não Será Aplicado a uma Página da Web
4.0 Problemas Conhecidos
   4.1 O JSP Validator Não Compila Automaticamente em Alterações Java Dependentes
   4.2 Dica de Desempenho: Fechar Projetos Inativos
   4.3 Dica de Desempenho: Desativar a Validação Automática
   4.4 Arquivos Não São Criados Pelos Assistentes Web Tooling em Pastas Somente Leitura no Linux
   4.5 Limitação de Personalização de Menus da Barra de Ferramentas do Page Designer
   4.6 Aviso de Link Interrompido em Applets
   4.7 Inserindo Applets nos Arquivos HTML e JSP Utilizando o Page Designer
   4.8 Considerações sobre Lançamento de Tipo para Código Criado com o Assistente Database Web Pages
   4.9 Os JSPs Devem Utilizar Instruções Import Explícitas.
   4.10 Migrando Dados Relacionais nos Projetos da Web 4.0.3
   4.11 JSPs e Servlets Java que São Projetados em um Ambiente DBCS para Um Nível J2EE 1.3 no Servidor WebSphere 5 Exigem um Snippet de Código Extra
   4.12 Arrastando e Soltando Itens em Exibição Quick Edit
   4.13 Utilizando Itens da Exibição Snippet com Ações Simples na Exibição Quick Edit
   4.14 Suporte a Linguagens de Portáteis para o Page Designer
   4.15 Suporte a Gabaritos de Páginas para o Page Designer
   4.16 Notas para Utilização das Partes do Site com o Web Site Designer
   4.17 Exibindo Sinais de Euro na Página Design do Page Designer no Motif
   4.18 Dando um Clique Duplo nas Propostas de Assistência de Conteúdo no Locale DBCS
   4.19 Anotações de Pesquisa em Arquivos Não-salvos em Editores
   4.20 Restrições ClearCase Utilizando os Gabaritos Web Site Designer ou Page
   4.21 Problema de Submissão do Formulário Javascript no JSP Gerado pelo Assistente Database Web Pages

1.0 Introdução

O ambiente de desenvolvimento da Web no WebSphere Studio fornece as ferramentas necessárias para desenvolver os aplicativos da Web.  Os aplicativos da Web incluem páginas estáticas da Web, JSPs (JavaServer Pages), Java Servlets, um descritor de implementação XML (web.xml) e outros recursos da Web.   O arquivo leia-me descreve os problemas conhecidos, limitações e as soluções alternativas que estão associadas às ferramentas utilizadas no ambiente de desenvolvimento da Web.

2.0 Alterações do Release Anterior

Os nomes das pastas de Web Content e Java Source em um projeto Web agora são configuráveis. Os nomes padrão são WebContent e JavaSource; contudo, os nomes padrão para novos projetos Web podem ser alterados na página Preferences Web Tools->New Project. As pastas para projetos existentes podem ser renomeadas utilizando o Navigator.
NOTA: Os nomes de pastas diferentes dos padrões não são compatíveis com o WebSphere Studio Versão 5.0.0. Não altere os nomes padrões se precisar manter a compatibilidade do espaço de trabalho com a versão 5.0.0.

Duas novas exibições foram adicionadas à perspectiva Web para ajudar na edição da página HTML/JSP. A exibição Palette contém um conjunto de itens que pode ser arrastado e solto em uma página da Web no Page Designer. A exibição Quick Edit permite que os usuários adicionem/editem scripts e marquem scripts de eventos no Page Designer. Para detalhes adicionais, consulte o sistema de Ajuda.

3.0 Limitações

3.1 Função de Seleção de Cores no Sistema de Janelas GTK

Você pode apanhar uma cor na tela nas exibições Colors, Attributes e Styles; contudo, essa função não funciona em sistemas de janelas GTK. Selecione o sistema de janelas Motif se desejar utilizar a função de seleção de cores.

3.2 Impossível Entrar Kanji DBCS Utilizando a Janela Candidate no Web Site Designer

No Web Site Designer, ao utilizar a janela Candidate de 'canna' para editar campos de texto, a entrada de KANJI DBCS falha.
Para evitar esse problema, utilize 'Wnn' em vez de 'canna'. Consulte o manual de instalação do sistema operacional para obter informações adicionais.

3.3 Casos em que um Gabarito de Página Não Será Aplicado a uma Página da Web

Há várias circunstâncias que podem fazer com que um gabarito de página não seja aplicado a uma página da Web ao utilizar qualquer dos assistentes de gabarito de página:

4.0 Problemas Conhecidos

4.1 O JSP Validator Não Compila Automaticamente em Alterações Java Dependentes

O JSP validator não revalidará automaticamente um arquivo JSP quando uma classe Java a qual ele faz referência é alterada. O JSP validator pode ser executado novamente no arquivo selecionando-o no Project Navigator e selecionando Run Validation no menu context.

4.2 Dica de Desempenho: Fechar Projetos Inativos

É recomendável fechar quaisquer projetos com os quais não esteja trabalhando para melhorar o desempenho. Somente projetos abertos são recompilados quando Rebuild All é executado.

4.3 Dica de Desempenho: Desativando Validação Automática

Por padrão, os validadores são automaticamente executados quando você salva recursos em um projeto Web. Se não desejar que os validadores executem automaticamente quando você salvar esses recursos, abra o diálogo Properties do projeto Web a partir do menu de contexto na exibição J2EE Navigator. Em seguida, ative a opção Override validation preferences e desative a opção Run validation automatically when you save changes to resources na página Validation. Você também pode desativar a validação automática (e construções) para todos os projetos, selecionando Window > Preferences e desativando Perform build automatically on resource modification na página Workbench. Se você desativar as construções automáticas, poderá executar manualmente uma construção (e validação), selecionando Project > Rebuild Project.

4.4 Arquivos Não São Criados pelos Assistentes Web Tooling em Pastas Somente Leitura no Linux

Os arquivos não são gerados e nenhuma mensagem de erro é fornecida quando você tenta criar arquivos em uma pasta somente leitura no Linux.

4.5 Limitação de Personalização do Menu Page Designer Toolbar

Depois de personalizar a barra de ferramentas utilizando o diálogo Customize Perspective (acessado selecionando Window > Customize Perspective), o menu Page Designer Toolbar não poderá ser utilizado para personalizar outra barra de ferramentas. Nesse caso, você deve utilizar o diálogo Customize Perspective para personalizar quais itens da barra de ferramentas devem ser exibidos.

4.6 Aviso de Link Interrompido em Applets

LinksBuilder pode sinalizar incorretamente o valor do atributo de código de um applet como um link inválido se um nome de classe Java completo for utilizado:

<applet code="aaa.bbb.AnApplet" codebase="MyApplets">
Esse aviso pode ser seguramente ignorado e não afeta o comportamento do applet quando ele é executado no servidor.

Esse aviso pode ser evitado utilizando um separador de caminho ('/'), em vez do separador ('.') e assegurando que a extensão .class seja explicitamente especificada. Exemplo:

<applet code="aaa/bbb/AnApplet.class" codebase="MyApplets">

4.7 Inserindo Applets em Arquivos HTML e JSP Utilizando o Page Designer

A pasta de fonte Java (por padrão JavaSource) de um projeto Web é para classes do lado do servidor, portanto, o código fonte para applets não pode ser colocado nessa pasta. Portanto, recomenda-se o seguinte ao desenvolver applets:

  1. Crie um projeto Java para applets e crie as classes de applet no projeto.
  2. Copie os arquivos de classe de applet para a pasta de conteúdo de Web (por padrão, WebContent) de um projeto Web. Não os copie para a pasta WEB-INF, porque essa pasta destina-se apenas a classes do lado do servidor. (Para ver os arquivos de classe, você precisará alterar os filtros da exibição do Project Navigator, selecionando Filters na lista drop down do botão Menu da exibição.
  3. Insira um applet em uma página da Web, selecionando Insert > Others > Java Applet no Page Designer. Nesse ponto, você deve definir os atributos code e codebase apropriados.

    Por exemplo, se a sua classe de applet for aaa.bbb.AnApplet e a estrutura de arquivos for a seguinte:

     
    WebContent/index.html
    WebContent/MyApplets/aaa/bbb/AnApplet.class
    code is "aaa.bbb.AnApplet"

    a marcação de applet no index.html deverá conter:

    codebase is "MyApplets"

4.8 Considerações sobre Lançamento de Tipo para Código Criado com o Assistente Database Web Pages

No assistente para Database Web Pages, utilizando o IBM Data Access Beans - Master Details Pattern, alguns bancos de dados têm problemas ao executar o lançamento interno de Cadeias para o Tipo de Dados apropriado. Por exemplo, Oracle 8.17i não lançará números a partir de cadeias.

Para corrigir isso no arquivo $Prefix$ViewBean.java gerado para cada consulta DataAccess, será necessário fazer uma alteração no método prepareStatement().

Para o código semelhante a este:
//Add parameters descriptions to meta
data.DBParameterMetaData metaData = getDBSelect().getParameterMetaData();
metaData.setParameter(1, PARAM1_NAME, DatabaseMetaData.procedureColumnIn,
java.sql.Types.DECIMAL,
java.lang.String.class);

// Set parameters.
getDBSelect().setParameter(PARAM1_NAME, inSAL);

Você precisará alterá-lo para:
//Add parameters descriptions to meta data.
DBParameterMetaData metaData = getDBSelect().getParameterMetaData();
metaData.setParameter(1, PARAM1_NAME, DatabaseMetaData.procedureColumnIn,
java.sql.Types.DECIMAL,
java.math.BigDecimal.class);

// Set parameters.
getDBSelect().setParameterFromString(PARAM1_NAME, inSAL);
Você precisa indicar aos Metadados do Parâmetro qual tipo de objeto Java é esperado pelo banco de dados. Em seguida, utilize o método setParmeterFromString em vez do método setParameter na instância DBSelect. Isso indicará ao objeto DBSelect para executar a conversão de tipo em vez de seu Banco de Dados.

4.9 Os JSPs Devem Utilizar Instruções Import Explícitas.

Os arquivos JSp devem utilizar o atributo 'import' da diretriz page para descrever os tipos que estão disponíveis para o ambiente de script naquela página. Alguns tipos podem ter sido importados implicitamente em arquivos JSP contidos em projetos do J2EE1.2, mas mostrarão erros se utilizados em um projeto do J2EE1.3. Para evitar esse problema, os tipos devem ser sempre importados explicitamente na página JSP (a menos que o tipo esteja incluído na lista de importação padrão: java.lang.*, javax.servlet.*, javax.servlet.jsp.* e javax.servlet.http.*).

4.10 Migrando Dados Relacionais nos Projetos da Web 4.0.3

Para migrar dados relacionais de projetos do WebSphere Studio 4.0.3, você precisará fazer o seguinte.

  1. A partir de um espaço de trabalho do 4.0.3, gere arquivos DDL para cada banco de dados disponível.
  2. Remova o banco de dados da pasta source/databases do Projeto Web (através da exibição Data Definition)
  3. Abra o espaço de trabalho do 4.0.3 com o WebSphere Studio Versão 5.
  4. Migre os projetos Web para os quais você deseja restaurar dados relacionais.
  5. Clique em File> Import > File System, e especifique o arquivo ou arquivos DDL de seu espaço de trabalho do 4.0.3.
  6. Na exibição Data Definition da Perspectiva Data, selecione Run against Local, e especifique o projeto Web de destino.

Os artefatos de dados relacionais serão restaurados.

4.11 JSPs e Servlets Java que São Projetados em um Ambiente DBCS para um Nível J2EE 1.3 no Servidor WebSphere 5 Exigem um Snippet de Código Extra

Esta entrada aplica-se a Servlets JSPs e Java que são projetados em um ambiente DBCS para um nível J2EE 1.3 no servidor WebSphere 5. O snippet de código a seguir deve ser incluído na origem antes de qualquer parâmetro ou atributo de pedido ser acessado:

  if(request.getCharacterEncoding() == null){  
request.setCharacterEncoding(<encoding>); // typically this would be the encoding of the JSP or servlet
}
//...normal jsp/servlet code which access request objects like
// <%=request.getParameter("message")%>

Se o procedimento acima não for realizado e o pedido não incluir informações de codificação, todos os parâmetros de pedidos devem ser analisados em ISO-8859-1, portanto, se qualquer parâmetro de entrada incluir caracteres DBCS, eles serão exibidos incorretamente.

4.12 Arrastando e Soltando Itens em Exibição Quick Edit

Antes de arrastar e soltar itens ou texto da exibição Snippets ou Palette para a exibição Quick Edit, certifique-se primeiro de que a exibição Quick Edit esteja limpa da instrução "Insert an action/code snippet".

4.13 Utilizando Itens de Exibição de Snippet com Ações Simples na Exibição Quick Edit

Para cada item da exibição Snippet JavaScript, existe uma ação simples correspondente disponível na exibição Quick Edit. Na exibição Quick Edit, não se recomenda combinar o uso de ações simples com itens da exibição Snippets no mesmo script de evento. Se os itens precisarem ser combinados, tome cuidado com o posicionamento do item de Snippet. Arrastar e soltar itens da exibição Snippets para a exibição Quick Edit quando o editor já contiver ações simples pode fazer com que o item de Snippet seja inserido em lugar errado. Se isso ocorrer, exclua e insira novamente a ação simples.

4.14 Suporte a Linguagens de Portáteis para o Page Designer

Atributos que não são suportados em linguagens de portáteis, tais como cHTML ou WML, podem ser inseridos a partir do diálogo Insert ou da exibição Attributes.
Porém, você deve verificar a validade do código utilizando Tools > Validate HTML Syntax para um documento cHTML, ou por Tools > Validate WML Syntax para um documento WML.

4.15 Suporte a Gabaritos de Páginas para o Page Designer

Gabaritos de página são suportados somente pelo Page Designer, não pelo Page Designer Classic. É possível utilizar o Page Designer para editar uma página HTML/JSP utilizando uma função de gabarito de Página.

4.16 Notas para Utilização das Partes do Site com o Web Site Designer

4.17 Exibindo Sinais de Euro na Página Design do Page Designer no Motif

O Page Designer não pode exibir símbolos de euro na página Design quando estiver em execução em um sistema Motif. Para exibir o símbolo, é preciso utilizar um sistema GTK.

4.18 Dando um Clique Duplo nas Propostas de Assistência de Conteúdo no Locale DBCS

Ao utilizar Linux (Motif ou GTK) e um locale DBCS, dar um clique duplo na lista de assistência de conteúdo às vezes pode fazer com que a VM Java termine. Em vez de dar um clique duplo na lista, utilize as teclas de seta e Enter para fazer a seleção na lista.

4.19 Anotações de Pesquisa em Arquivos Não-salvos em Editores

No Editor Source e na página Source de editores de várias páginas, como o Editor XML, a função de pesquisa está funcionando a partir do recurso salvo no sistema de arquivos em vez de a partir do conteúdo do editor. As anotações de pesquisa em qualquer editor não salvo podem não ser confiáveis. Para evitar esse problema, salve o arquivo antes de fazer uma pesquisa.

4.20 Restrições ClearCase Utilizando os Gabaritos Web Site Designer ou Page

Se você utilizar o Web Site Designer para trabalhar em um projeto da Web, deverá primeiro assegurar que será registrada saída dos arquivos de projeto, como por exemplo arquivos html ou jsp e arquivos relacionados, do repositório ClearCase.

Além disso, se você utilizar os gabaritos Page em seu projeto da Web, deverá primeiro registrar saída dos arquivos apropriados do ClearCase.

4.21 Problema de Submissão do Formulário Javascript no JSP Gerado pelo Assistente Database Web Pages

Em alguns JSPs gerados pelo Assistente Database Web Pages especialmente aqueles intitulados '***MasterView.jsp'

em links na página intitulada 'Back', 'Refresh' & outros podem não funcionar em todos os navegadores. Os problemas são notados em alguns navegadores, especialmente como Mozilla & Konqueror.

Para corrigir o problema para a maioria dos navegadores, altere o código Javascript para a função nomeada 'submitForm' no JSP.

Altere a variável 'document.<formName>.elements.action' no método para 'document.<formName>.action'.

Por exemplo, function submitForm(nav){ if(nav == 'SCHEMA_TABLEInputForm'){ document.myForm.elements.action = "/Web3/SCHEMA_TABLEInputForm.html"; } else if(nav == 'SCHEMA_TABLEMasterView'){ document.myForm.elements.action = "/Web3/SCHEMA_TABLEMasterView"; } else{ document.myForm.elements.action = "/Web3/SCHEMA_TABLEDetailsView"; }

torna-se

function submitForm(nav){ if(nav == 'SCHEMA_TABLEInputForm'){ document.myForm.action = "/Web3/SCHEMA_TABLEInputForm.html"; } else if(nav == 'SCHEMA_TABLEMasterView'){ document.myForm.action = "/Web3/SCHEMA_TABLEMasterView"; } else{ document.myForm.action = "/Web3/SCHEMA_TABLEDetailsView"; }

Retornar para o arquivo leia-me principal