Java 1.5, Java EE 5는 6.1입니다. 예외 ResourceBundle.getBundle (…)으로 리소스 번들을로드했습니다.

StackOverflow https://stackoverflow.com/questions/812802

  •  03-07-2019
  •  | 
  •  

문제

다음은 현재 프로덕션 환경에서 새로운 데이터 센터 환경으로 응용 프로그램을 마이그레이션하는 동안 직면하고있는 또 다른 문제입니다 (아래 세부 사항 참조).

  • 현재 생산 환경 : Java 1.4, Java EE 3, 5.1, JSF 2.1
  • 새로운 환경 : Java 1.5, Java EE 5, 6.1, JSF 2.1

여기에는 다음 구조가있는 타사 항아리 파일이 있습니다 (이미지 확인 - 세부 사항을 숨기고 용서해)
alt text


이 클래스에는 ResourceBundle (db.properties)에서 데이터베이스 속성을로드하는 코드가 있습니다. Cavaj가 렌더링 한 코드는 다음과 같습니다.

    private static ResourceBundle getDBProperties()
    {
        if(dbProperties == null)
        {
            dbProperties = ResourceBundle.getBundle("db");
        }
        return dbProperties;
    }

이 응용 프로그램은 현재 환경에서 잘 작동합니다. 그러나 어쨌든 우리가 응용 프로그램을 새로운 환경으로 옮길 때 우리는 "MissingResourceException"을 얻습니다 (아래 참조).

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)

우리는 다음과 같은 해결 방법을 시도했지만 아무도 작동하지 않았습니다.

  1. db_en_us.properties로 db.properties로 이름을 바꿨습니다
  2. 속성 파일을 항아리에 넣습니다
  3. 항아리 파일을 귀 수준으로 이동합니다.

여기서 무엇이 잘못 될 수 있는지 제안 해주세요. 그리고 우리는 그것을 작동시키기 위해 무엇을 할 수 있습니까? :)

메모: 파일 DB.Properties는 Web-Inf/Classe 디렉토리 아래에 있습니다. 또한 우리는 위에서 언급 한 위치에 넣었지만 아무 소용이 없습니다.

문안 인사,
- 아쉬 쉬

도움이 되었습니까?

해결책

ENT 설정에서 클래스 로더 주문을 변경하십시오. 관리 콘솔의 응용 프로그램 (From PARENT_FIRST 에게 PARENT_LAST) 귀와 전쟁 수준에서.

제 3 자 수업 (나에게) (com.myco.wo.vs.util.OrderLovUtilities)는 web-inf/lib의 JAR 파일에서로드되지 않지만 서버의 다른 위치에서 나옵니다. 그런 다음 클래스 로더에는 속성 파일이 표시되지 않습니다.

이것이 문제인 경우 클래스 로더 순서를 변경하면 클래스의 예상 사본이로드 될 수 있습니다.

또한 관리자 콘솔의 클래스 로더 뷰어가이를 밝힐 수 있습니다.

다른 팁

DB.Properties 파일을 Web-Inf/Classes Directory에 넣었습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top