Problema com servidor Glassfish

Bom dia à todos!

Estou com o seguinte problema e gostaria de ajuda:

Tenho uma tela em que alguns dados são gravados.

Estou utilizando o servidor Glassfish + Hibernate.

Como padrão, o horário de gravação que está sendo gerado é a meia noite.

O problema que ocorre é o seguinte:

  • Quando efetuo a gravação de dados em um dia em que começa o horário de verão, o horário de gravação gerado não é mais a meia noite, e sim às 23hs do dia anterior,
    gerando erro de 1 hora, e erro de 1 dia na data de gravação, pois como volta uma hora, fica com a data do dia anterior.

Este problema não ocorre no servidor TomCat, mas sim, somente no glassfish.

Pesquisei bastante na internet mas não encontrei uma forma de resolver este problema.

Gostaria de saber se alguém já passou por um problema como este ou alguma solução que eu poderia estar utilizando.

Já tentei também que fazer com que o horário padrão gerado pelo java seja meia dia, ou seja, às 12hs, mas nã consegui, pois o horário padrão gerado pelo java é as 00:00hs.

Aguardo resposta.

Obrigado.

Alguém tem alguma sugestão?

A hora do servidor está correta? Tentou reiniciar tudo (server+glassfish)?

Sim, a hora do server está correta, reiniciei o server também.

Este problema somente acontece quando é gravada informação em um dia em que inicia o horário de verão. Ele grava com uma hora a menos.

Cara,

 Já aconteceu comigo a um tempo atrás. Vc terá de configurar o timezone do glassfish...dá uma pesquisada no google, pq não me lembro como foi. Pode ser que haja soluções mais atuais.

Abçs.

Configurei da seguinte maneira no glassfish:

  • -Duser.timezone=Brazil/East

Mas continuou não funcionando.

Qual é a versão do Glassfish que vc está utilizando?

É a versão 2.1

Se for o seu caso, na view,

<h:outputLabel value="Admissao:" for="dataAdmissao" />
       <p:inputMask id="dataAdmissao" title="Admissão:" value="#{funcionarioController.funcionario.dataAdmissao}"
                          mask="99/99/9999" size="12" required="true" requiredMessage="Informe a data de admissão">
       <f:convertDateTime pattern="dd/MM/yyyy" timeZone="#{funcionarioController.timeZone}"/>
</p:inputMask>

No Mbean,

public class SeuManagedBean {

private TimeZone timeZone = TimeZone.getDefault();
...
//get and set

}

Ou esta solução…creio que esteja mais atual,

Mas antes, tente atualizar o seu Glassfish para o 3.1.1…

Ok, obrigado.

Na verdade meu problema está com datas em que iniciam o horário de verão.

O horário padrão deveria ser as 00:00hs (meia noite), mas como é um dia que inicia o horário de verão é descontada uma hora, ficando com data do dia anterior, ou seja, as 23hs do dia anterior.

Mais alguém tem alguma sugestão?

O problema que eu quero resolver é que não seja descontada essa hora pelo servidor.

Alguém tem pelo menos uma ideia de como desativar o horario de verao no glassfish?

Desculpe reviver esse tópico, mas fiquei 4 dias tentando resolver o problema e hoje consegui e com a intenção de ajudar outros desevolvedores, segue o passo a passo,

digite no seu glassfish
c:\glassfish3\bin> asadmin list-jvm-options

veja se na lista aparece
-Duser.timezone=UTC

se aparecer troque o UTC pelo seu país

caso não apareça vá até o arquivo domain.xml e procure por jvm-options e acrescente a linha de comando
-Duser.timezone=Brazil/East substituindo o Brazil/East pelo timezone do país

após reinicie o servidor e seja feliz