Kbase 47503: Erro na carga do metadados - Datasul 11.5.2 em Linux
Autor |
  Gian Ricardo Dalfovo - CAT |
Acesso |
  Público |
Publicação |
  9/18/2012 |
|
Situação:
Ao iniciar o serviço do jboss e realizar a carga de metados em ambiente Linux, após um período de processamento ocorre o erro abaixo:
Caused by: com.totvs.framework.md.loader.exception.SystemException: java.io.FileNotFoundException: /jboss-4.2.3.GA/server/instance-8080/metadados/11.X.X/v1152.0.0/database/domain/domain_Num�rico.xml
Causa:
Alguns arquivos .xml são liberados com acentos no nome. O codepage padrão no Linux normalmente vem configurado como UTF-8 e os arquivos aparentemente são gerados como iso8859-1 (padrão do windows).
Solução:
Configurar o 'locale' do Linux para iso8859-1, e informar ao java na carga do jboss para trabalhar com este padrão também.
No Linux, digite o comando locale e verifique o resultado da variável LANG. Caso não esteja como iso8859-1, atribua o valor conforme exemplo:
export LANG=pt_BR.iso8859-1
Para confirmar, digite o comando locale novamente.
Executando um ls na pasta '/jboss-4.2.3.GA/server/instance-8080/metadados/11.X.X/v1152.0.0/database/domain ', os nomes dos arquivos devem aparecer corretamente acentuados.
Ao iniciar o jboss, informar o parâmetro adicional:
-Dfile.encoding=iso8859-1
Na mídia de instalação do Datasul 11 é liberado um script para a carga do serviço.
Este parâmetro pode ser incluído no próprio script. Usando como exemplo o arquivo run-bd-progress.sh, inclua a linha no ponto abaixo:
# Setup Database Dialect and Cluster Instance
JAVA_OPTS="-Dhibernate.dialect=com.datasul.framework.persistence.ejb3.dialect.OpenEdgeDialect -Djboss.partition.name=$2 $JAVA_OPTS"
JAVA_OPTS="-Dfile.encoding=iso8859-1 $JAVA_OPTS"
Por comodidade, o 'export LANG' também pode ser incluído no início deste script.