2016-10-10 2 views
0

내 대상 플랫폼이 WebLogic 12c 응용 프로그램 서버입니다.WebLogic의 번들 모듈을 사용할 수 있습니까?

저는 귀 프로젝트가 있습니다. org.apache.commons.logging.LogFactory.

이 클래스 (관련 클래스)는 <WL_HOME>/modules/com.bea.core.apache.commons.logging.api_1.1.1.jar에 있지만 기본적으로 classspath에서는 사용할 수 없습니다.

그런 경우 - 클래스 패스에서 <WL_HOME>/modules의 jar 파일을 사용할 수있게해야합니까? 아니면 적절한 jar 파일을 제공해야합니까? 응용 프로그램에 번들로 제공되거나 <WL_HOME>/user_projects/domains/<mydomain>/lib에 있습니까?

<WL_HOME>/modules 폴더에있는 폴더를 사용하려면 도메인을 사용하도록 설정하려면 어떻게해야합니까? 나에게

모듈 폴더에있는 jar 파일이 제공 의존성을 고려되어야하지만, 지금까지 내가 등을 가능하게하는 올바른 방법을 찾을 수 없었습니다 합리적인 것 같다 - 내가 대답을 찾아왔다 몇 시간 동안 :-)

업데이트 : 나는 단순히 서버 시작 스크립트의 CLASSPATH 변수에 추가 할 수 있습니다. - 제 질문은 더 좋아야합니까? 더 좋은 방법이 있습니까? 아니면 <WL_HOME>/modules을 완전히 잊어야합니까?

답변

0

근시안적인 접근 방식입니다.

  • 당신은 서버의 모든 응용 프로그램은 자신의 classpath

웹 로직이 Shared JEE Libraries (example)의 개념이에 해당 라이브러리 괜찮해야 라이브러리

  • 를 업그레이드하기 위해 서버를 다시 부팅해야합니다. 즉, MANIFEST.MF에 추가 행을 추가하고 jar를 다르게 구성한 다음 weblogic-application.xml 또는 다른 것을 사용하여 다른 응용 프로그램에서 참조 할 수 있습니다.

    요점은 서버를 다시 시작하지 않고 라이브러리를 업그레이드 할 수 있다는 점이다 (당신이 그것을 1.1 같은 버전을 주었다 제공 (버그에게 내가 그것을라는 이름의 마지막 시간을 있었다 1.1.1 - 그것은 부동 소수점으로 캐스팅 할 수 있도록 필요한 번호를 사용하여 완벽하게 업그레이드).

    당신은 단지 몇 가지 라이브러리하지만 을 포함 할 경우

    하지는 당신이 EAR 또는 WAR이 있는지 여부에 따라 올바른 <prefer-application-packages> 또는 < prefer-web-inf-classes> 요소를 지정, 응용 프로그램 외부에서 공유 할 수 있습니다.

  • +0

    그래서 응용 프로그램간에 정렬되어야하거나 서블릿 컨테이너에 단단히 결합해야하는 종속성을 제외하고 자체 포함 된 전쟁이나 귀를 선호합니까? –

    +0

    맞습니다. Weblogic 자체에 라이브러리로 설치해야하는 것은 FIPS 암호화 모듈, AWS SQS 드라이버 또는 기타와 같은 서버 관련 항목뿐입니다. 많은 앱에 공통적이지만 40 회 (예 : 피곤한이 일광 절약 시간제로 마음을 바꿀 때마다 표준 시간대 데이터베이스를 업데이트해야하는 joda-time과 같은) 업데이트하는 데 어려움이있는 앱은 공유 라이브러리는 유지 보수가 용이하도록 설계되었습니다. 당연히 사내 도서관도 있습니다. –

    +0

    괜찮 았어 - 고마워 .-) –

    관련 문제