Java 1.5, Java EE 5, o WAS 6.1: Exceção carregar um pacote de recursos com ResourceBundle.getBundle (...)
Pergunta
Aqui está outro problemas que estamos enfrentando durante a migração nossa aplicação de ambiente de produção atual para o novo ambiente de centro de dados (ver detalhes abaixo)
- atual ambiente de produção: Java 1.4, Java EE 3, foi de 5,1, JSF 2.1
- Novo Ambiente: Java 1.5, Java EE 5, o WAS 6.1, JSF 2.1
Aqui temos um terceiro arquivo festa frasco com a seguinte estrutura (verificar a imagem - perdão me escondendo alguns detalhes)
Esta classe tem o código para carregar as propriedades de base de dados a partir de um ResourceBundle (db.properties). Aqui está o código prestados por Cavaj:
private static ResourceBundle getDBProperties() { if(dbProperties == null) { dbProperties = ResourceBundle.getBundle("db"); } return dbProperties; }
Esta aplicação está funcionando bem no ambiente atual. Mas de alguma forma quando mover o aplicativo para o novo ambiente temos um "MissingResourceException" (veja abaixo):
Caused by: java.util.MissingResourceException: Can't find bundle for base name db, locale en_US at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:863) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:832) at java.util.ResourceBundle.getBundle(ResourceBundle.java:576) at com.myco.wo.vs.util.OrderLovUtilities.getDBProperties(OrderLovUtilities.java:195)
Nós tentamos seguinte soluções alternativas, mas nenhum funcionou:
- rebatizado de db.properties como db_en_US.properties
- Colocar o arquivo de propriedades na jarra
- mover o arquivo jar ao nível do ouvido.
Por favor, sugerem sobre o que poderia estar errado aqui. E o que podemos fazer para fazê-lo funcionar:)
Nota: db.properties arquivo está localizado no diretório WEB-INF / classes. Também tentei colocá-lo na acima locais mencionados, mas sem sucesso.
Saudações,
- Ashish
Solução
Tente mudar classloader ordenação em configurações do seu ent. aplicação no console de administração (de PARENT_FIRST
para PARENT_LAST
) em ambos os níveis EAR e WAR.
Parece-me que a 3ª classe partido (com.myco.wo.vs.util.OrderLovUtilities
) não está carregado a partir do arquivo jar em WEB-INF / lib, mas é um pouco vem de algum outro local no servidor. Seu carregador de classe, em seguida, não vê o arquivo de propriedade.
Se for esse o problema, alterando a ordem carregador de classe deve fazer com que a cópia esperado da classe de carga.
Além disso, o espectador carregador de classe no console de administração pode colocar alguma luz sobre isso.
Outras dicas
Você já tentou colocar seu arquivo db.properties em WEB-INF / diretório de classes?