문제

나는 이것이 간단하다고 생각하지만 답을 얻기 위해 올바른 검색어 조합을 찾을 수는 없습니다. 다중 모듈 응용 프로그램이있는 경우 모듈 B의 콩 A에서 콩을 어떻게 얻을 수 있습니까?

프로젝트 설정은 다음과 같습니다.

project.ear/module-a.jar/resources/beans.xml
project.ear/module-a.jar/java/foo/bar.class
project.ear/module-b.war/java/foo/barFactory.class

Beans.xml은 ClassPath 또는 FileSystem에서 액세스 할 수 없습니다. 이것을 할 방법이 있습니까? 아니면 모든 것을 다르게해야합니까?

도움이 되었습니까?

해결책

제 생각에는 거기 있습니다 위에서 언급 한이 3 개의 스카프 맨보다 쉬운 솔루션입니다.

  1. Module-B.War/Web-Inf/Web.xml에 넣으십시오.

    <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

    classpath*:/resources/beans.xml

    </param-value>

    </context-param>

    이를 통해 모든 ClassPath (예 : 클래스 경로의 항아리)에서 모든 /resources/beans.xml을로드 할 수 있습니다.

  2. 모듈 A.jar를 모듈 B.war의 일부로로드해야합니다 (Module-A.jar는 Module-B.War/Web-INF/LIB 위치에 있습니다).

나는 프로젝트에서 매우 비슷한 세분성을 가지고 있습니다 : Beans의 구성과 Frontend.war는 이전 ef = "somebean"을 통해 이전 콩을 사용하는 Beans의 구성과 Frontend.war가 있습니다. 효과가있다.

다른 팁

AppServer는 귀에있는 각 모듈에 대해 다른 클래스 로더를 사용하여 한 모듈이 다른 모듈에서 리소스를 보지 못하게 할 수 있습니다. 이것은 Javaee 클래스 로더의 기본 동작입니다.

당신은 필요합니다

  • appserver를 귀로 전체 귀에 "통합 된"클래스 로더를 사용하도록 재구성하십시오 (AppServer에 따라 매우 적합하지만 작동 할 수있는 경우 훌륭함), 또는
  • 모든 것을 하나의 모듈로 포장합니다 (예 : 전쟁은 모든 것을 포함 할 수 있음) 또는
  • 전쟁 모듈에 대한 공식적인 매니페스트를 선언하여 개별 JAR 모듈에 대한 의존성을 선언 할 수있게 해주므로 전쟁이 JAR 모듈의 자원을 볼 수 있어야합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top