NULLPOINTER - DISPLAYTAG
-
12 de Setembro de 2016 às 12:38Estou utilizando o sistema operacional Linux Ubuntu 16.04, com o servidor
de aplicação TomCat 8.5 com o Java 7, estava utilizando a versão do Java 8
e Tomcat 9 para testar mas sem sucesso.
Fiz a importação do banco de dados normalmente, tive que fazer uma
alteração no TYPE=InnoDB para Engine=InnoDB, e uma alteração no arquivo
CategoriaTalento.hbm.xml para o nome da tabela
GRUPOCATEGORIATALENTO, porque todas as tabelas estão em UPPERCASE e não
estava encontrando a tabela com o nome de GrupoCategoriaTalento.
Depois da análise o que percebi que todos os fluxos que utilizam aquela
taglib display: table está dando erro de null pointer , como se a variável
list enviada na request estivesse nula, porém não está, fiz alguns testes
utilizando o forEach do jstl e está trazendo as informações normalmente.
<%--
${myObject.descricao}
--%>
Publiquei o erro no pastebin com o log completo.
Output: http://pastebin.com/T0e6Byh6
Catalina.out: http://pastebin.com/QBEjeueA
Alguém tem uma solução? -
12 de Setembro de 2016 às 12:41<c:forEach var="talento" items="${lstTalentos}">
<li data-value="${talento.descricao}">${talento.descricao}</li>
</c:forEach> -
12 de Setembro de 2016 às 12:41<c:forEach var="talento" items="${lstTalentos}">
<li data-value="${talento.descricao}">${talento.descricao}</li>
</c:forEach> -
12 de Setembro de 2016 às 13:58Oi Kélvin,
Estranho, até hoje não vi esse tipo de erro por causa da display.
Sua configuração não é muito diferente da que usamos, exceto pela versão do
Tomcat. Você teria como testar com a versão 7 ou até mesmo com a versão 6?
As versões mais recentes desse servidor implementam especificações mais
novas do JSP/Servlet que podem ter quebrado a compatibilidade com a taglib
display.
Um abraço,
Luciano.
2016-09-12 9:38 GMT-03:00 Kélvin Santiago: > Estou utilizando o sistema operacional Linux Ubuntu 16.04, com o servidor
> de aplicação TomCat 8.5 com o Java 7, estava utilizando a versão do Java 8
> e Tomcat 9 para testar mas sem sucesso.
>
> Fiz a importação do banco de dados normalmente, tive que fazer uma
> alteração no TYPE=InnoDB para Engine=InnoDB, e uma alteração no arquivo
> CategoriaTalento.hbm.xml para o nome da tabela
> GRUPOCATEGORIATALENTO, porque todas as tabelas estão em UPPERCASE e não
> estava encontrando a tabela com o nome de GrupoCategoriaTalento.
>
> Depois da análise o que percebi que todos os fluxos que utilizam aquela
> taglib display: table está dando erro de null pointer , como se a variável
> list enviada na request estivesse nula, porém não está, fiz alguns testes
> utilizando o forEach do jstl e está trazendo as informações normalmente.
>
><%--
> ${myObject.descricao}
> --%>
>
> Publiquei o erro no pastebin com o log completo.
> Output: http://pastebin.com/T0e6Byh6
> Catalina.out: http://pastebin.com/QBEjeueA
>
> Alguém tem uma solução?
>
> _______________________________________________
> Banco-de-talentos mailing list
> Banco-de-talentos@listas.softwarepublico.gov.br
>https://listas.softwarepublico.gov.br/mailman/cgi-bin/listinfo/
> banco-de-talentos
>
> -
12 de Setembro de 2016 às 14:00Vou testar..
-
12 de Setembro de 2016 às 14:13Testei na versão do Java 1.7.0_79 com o Tomcat 7.0.53 e Tomcat 6.0.45 mas estou tendo o mesmo erro.
Output: http://pastebin.com/9a7qk0jM -
12 de Setembro de 2016 às 14:20Kelvin,
Infelizmente não consigo acessar o site pastebin.com do meu trabalho.
Vou tentar montar um ambiente como o seu utilizando uma máquina virtual
(virtualbox) para tentar reproduzir o problema.
Você baixou o código fonte do git ou utilizou o war disponível?Um abraço,
Luciano.On Mon, Sep 12, 2016 at 11:13 AM, Kelvin Santiago> wrote:
> Testei na versão do Java 1.7.0_79 com o Tomcat 7.0.53 e Tomcat 6.0.45 mas
> estou tendo o mesmo erro.
>
> Output: http://pastebin.com/9a7qk0jM
> _______________________________________________
> Banco-de-talentos mailing list
> Banco-de-talentos@listas.softwarepublico.gov.br
>https://listas.softwarepublico.gov.br/mailman/cgi-bin/listinfo/
> banco-de-talentos
> -
12 de Setembro de 2016 às 14:25Fiz checkout do projeto em https://softwarepublico.gov.br/gitlab/banco-de-talentos/banco-de-talentos/tree/master
-
13 de Setembro de 2016 às 14:59Oi Kelvin,
Em uma máquina com o Ubuntu 14.04, o Eclipse Neon e o JDK 1.8, importei o
código fonte do banco de talentos do repositório git.
Configurei, no Eclipse, 3 servidores: Tomcat v6, v7 e v8 (baixei as últimas
versões do site, descompactei e apontei para esse diretório na configuração
do "server" no Eclipse).
Como banco de dados utilizei o H2 no modo server: baixei o h2, executei o
h2.sh e, na ferramenta aberta no browser, criei as tabelas (criacao-h2.sql)
e dei carga nos dados (carga-demo.sql). Deixei o h2 em execução.
No Eclipse, editei o hibernate-config.xml para apontar para o h2 no modo
servidor:
[...]
sa
sa
jdbc:h2:tcp://localhost//~/temp/h2/banco-de-talentos
org.h2.Driver
org.hibernate.dialect.H2Dialect
SELECT SYSDATE as
timestamp
PARSEDATETIME({0},
'dd/MM/yyyy')
PARSEDATETIME(TO_CHAR({0},
'dd/MM/yyyy'), 'dd/MM/yyyy')
[...]
Copiei o h2-[...].jar (driver do banco de dados) e coloquei nos diretórios
lib/ de cada versão do Tomcat.
Cada uma por vez, iniciei a versão do servidor Tomcat e fiz o login, o
cadastramento de um talento e uma navegação básica no sistema sem problemas.
Esses foram os passos que segui. O que você fez de diferente?Um abraço,
LucianoOn Mon, Sep 12, 2016 at 11:25 AM, Kelvin Santiago> wrote:
> Fiz checkout do projeto em https://softwarepublico.gov.
> br/gitlab/banco-de-talentos/banco-de-talentos/tree/master
> _______________________________________________
> Banco-de-talentos mailing list
> Banco-de-talentos@listas.softwarepublico.gov.br
>https://listas.softwarepublico.gov.br/mailman/cgi-bin/listinfo/
> banco-de-talentos
> -
13 de Setembro de 2016 às 15:22Primeiramente fui importar o arquivo criacao-mysql.sql para a criação das tabelas porém estava dando erro :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=InnoDB' at line 16
Então eu substitui TYPE=InnoDB por ENGINE=InnoDB
E então fui carregar novamente o script de criação só que apresentou o erro:
Duplicate key name 'FILTROCONSULTAUSUARIO_FKIndex2'
Então fui no script de criacao e alterei para FILTROCONSULTAUSUARIO_FKIndex1(IDEUSUARIO) na tabela FILTROCONSULTAUSUARIO_FKIndex2
Em cada erro eu apagava e executava novamente até que o script fosse executado com sucesso por completo.
Então eu executei o arquivo carga-demo.sql, o script foi executado normalmente sem erro.
Assim como você alterei as configurações em hibernate-config.xml:
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/bancotalentos?autoReconnect=true&relaxAutoCommit=true</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<substituicao chave="funcaoBDConverterStringEmData">STR_TO_DATE({0}, '%d/%m/%Y')</substituicao>
<substituicao chave="funcaoBDRemoverHorasDeData">STR_TO_DATE(DATE_FORMAT({0}, '%d/%m/%Y'), '%d/%m/%Y')</substituicao>
E tive que alterar o arquivo CategoriaTalento.hbm.xml porque estava dando erro que não encontrava tabela GrupoCategoriaTalento porque as tabelas no banco do mysql estão todas em uppercase.
<set name="gruposCategoriaTalento" table="GRUPOCATEGORIATALENTO" order-by="codGrupo" lazy="true">
<key column="ideCategoria"/>
<many-to-many column="codGrupo" class="br.gov.camara.negocio.autenticacaoperfil.pojo.Grupo"/>
</set>
Essa foi a configuração que fiz.
Sistema operacional: Ubuntu 14.04
Servidores Tomcat: v6,v7,v9
Java: v7,v8 -
13 de Setembro de 2016 às 15:26Estou utilizando o Intellij na versão 14, o tomcat estou rodando diretamente com o intellij, ele ja gera o war e inicia a aplicação.
-
14 de Setembro de 2016 às 12:09Fiz o teste com o banco de dados H2 mas o erro ainda persiste, o fluxo que estou utilizando é:
Talentos > Currículos > Cadastrar
Screenshot: http://imgur.com/a/mG795 -
14 de Setembro de 2016 às 15:47Kelvin,Não tem experiência com o Intellij, mas o problema pode ser como ele gera o
deploy para o Tomcat.
Acho que consegui reproduzir o problema removendo os arquivos *.properties
referenciados pela display dos locais esperados. Verifique se nos artefatos
da aplicação que foram feitos deploy (dentro do arquivo war) existem os
arquivos:
- WEB-INF/classes/org/displaytag/messages.properties
- WEB-INF/classes/org/displaytag/properties/TableTag.properties
Se não existirem, copie os arquivos para os locais indicados.
Teste novamente e me avise.Um abraço,
Luciano.2016-09-14 9:09 GMT-03:00 Kelvin Santiago: > Fiz o teste com o banco de dados H2 mas o erro ainda persiste, o fluxo que
> estou utilizando é:
>
> Talentos > Currículos > Cadastrar
>
> Screenshot: http://imgur.com/a/mG795
> _______________________________________________
> Banco-de-talentos mailing list
> Banco-de-talentos@listas.softwarepublico.gov.br
>https://listas.softwarepublico.gov.br/mailman/cgi-bin/listinfo/
> banco-de-talentos
> -
14 de Setembro de 2016 às 18:19Realmente não tem esses arquivos, em WEB-INF/classes/org/displaytag/ com esse nome "Messages" só tem um arquivo "Messages.class" e dentro de WEB-INF/classes/org/displaytag/properties não tem nenhum arquivo com esse nome TableTag.properties.
Onde fica localizado esses arquivos messages.properties e TableTag.properties para que eu possa copiar para o war? -
14 de Setembro de 2016 às 19:08Kelvin,No src/main/java/...Um abraço,
Luciano.2016-09-14 15:19 GMT-03:00 Kelvin Santiago: > Realmente não tem esses arquivos, em WEB-INF/classes/org/displaytag/ com
> esse nome "Messages" só tem um arquivo "Messages.class"
> e dentro de WEB-INF/classes/org/displaytag/properties não tem nenhum
> arquivo com esse nome TableTag.properties.
>
> Onde fica localizado esses arquivos messages.properties e
> TableTag.properties para que eu possa copiar para o war?
> _______________________________________________
> Banco-de-talentos mailing list
> Banco-de-talentos@listas.softwarepublico.gov.br
>https://listas.softwarepublico.gov.br/mailman/cgi-bin/listinfo/
> banco-de-talentos
> -
14 de Setembro de 2016 às 19:36Problema resolvido, realmente era isso! Basta copiar os arquivos
srv/main/java/org/displaytag/messages.properties para WEB-INF/classes/org/displaytag/
srv/main/java/org/displaytag/TableTag.properties para WEB-INF/classes/org/displaytag/properties/
Por algum motivo o intellij não está incluindo esses arquivos properties na hora de gerar a build do war.
Ordenar por:
Estatísticas:
-
iniciada em
8 anos, 7 meses atrás
-
vizualizada
2657 vezes
-
respondida
16 vezes
-
votada
0 vezes