[SPRING] Weblogic 10.3.5 Spring 버전 무시
SPRINGWeblogic 10.3.5 Spring 버전 무시
웹 로직 서버 10.3.5를 포함하여 오라클의 OEPE 배포판을 사용하여 웹 애플리케이션을 개발 중입니다. WLS에는 스프링 버전 2.5.10.SEC01이 포함되어 있습니다. 그러나 우리는 3.1 릴리스에 고유 한 스프링 및 스프링 보안 기능을 사용하려고합니다.
Maven POM은 Spring 버전을 3.1.1.RELEASE 속성으로 정의합니다 (해당 속성이 섹션에 연결됨, 즉 :
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
weblogic.xml에서 내장 된 Spring을 제외하는 두 가지 방법을 시도해 봤습니다 (하나는 아래 주석 처리되었지만 나머지는 모두 시도했습니다).
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>com.oracle.ojdbc16.*</wls:package-name>
<wls:package-name>antlr.*</wls:package-name>
<wls:package-name>javax.persistence.*</wls:package-name>
<wls:package-name>org.apache.commons.*</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
<wls:package-name>org.hibernate.*</wls:package-name>
<wls:package-name>org.apache.xerces.*</wls:package-name>
</wls:prefer-application-packages>
<!-- <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes> -->
</wls:container-descriptor>
내 자신의 스프링 버전을 사용하려면 전 세계에서해야 할 일이 무엇입니까?
해결법
-
==============================
1.OPTION1 : JRF가 설치되지 않은 도메인의 wls 서버에 Spring 3.x 응용 프로그램을 배포하십시오. 그것은 나를 위해 일합니다.
OPTION1 : JRF가 설치되지 않은 도메인의 wls 서버에 Spring 3.x 응용 프로그램을 배포하십시오. 그것은 나를 위해 일합니다.
OPTION2 : weblogic.xml에서 prefer-web-inf-classes를 사용하고 전쟁으로 배포하십시오. 이것은 나를 위해 wls 10.3.6, JRF 도메인, 봄 3.2.2 근무했습니다. 나는 선호하는 응용 프로그램 패키지를 사용할 수 없었지만 웹 inf 클래스를 선호했습니다.
NOTES : JRF가 설치되어있는 도메인에서 war / weblogic.xml / prefer-application-packages와 ear / weblogic-application.xml / prefer-application-packages 접근 방식을 모두 시도했지만 효과적이지는 않습니다. org.springframework.core.SpringVersion.getVersion ()을 출력하는 test jsp를 가지고 있으며 내 노력 (이것은 oracle_common / modules 폴더에 번들 된 Spring의 버전 임)에도 불구하고 2.5.6.SEC01에서 계속보고됩니다.
하지만 JRF가 아닌 도메인에 동일한 앱을 배포하면 org.springframework.core.SpringVersion.getVersion ()은 앱에 번들로 제공되는 모든 버전의 Spring을보고합니다.
-
==============================
2.나는 똑같은 문제가 있었다. 해결책은 EAR 프로젝트의 META-INF 폴더에 weblogic-application.xml을 작성하는 것이 었습니다. 여기에 코드가 있습니다.
나는 똑같은 문제가 있었다. 해결책은 EAR 프로젝트의 META-INF 폴더에 weblogic-application.xml을 작성하는 것이 었습니다. 여기에 코드가 있습니다.
<?xml version="1.0" encoding="UTF-8"?> <weblogic-application> <prefer-application-packages> <package-name>org.apache.*</package-name> <package-name>org.springframework.*</package-name> </prefer-application-packages> </weblogic-application>
문제는 weblogic-application.xml 대신 EAR 프로젝트에 weblogic.xml을 WAR 프로젝트에 사용하고 있다는 것입니다.
희망이 도움이됩니다.
-
==============================
3.Spring Framework를 사용하고 있다면 Spring Integration 프로젝트의 경우에도 EAR이 아닌 WAR에 Spring Bean을 배포 할 가능성이 높습니다. 특정 설정없이 최대 12c (12.2.1 포함)까지 Spring Framework 3.0.5 및 Spring Integration 2.2.6을 고수해야합니다. 더 높은 Spring 버전을 사용하려는 시도는 배포시에 발생합니다.
Spring Framework를 사용하고 있다면 Spring Integration 프로젝트의 경우에도 EAR이 아닌 WAR에 Spring Bean을 배포 할 가능성이 높습니다. 특정 설정없이 최대 12c (12.2.1 포함)까지 Spring Framework 3.0.5 및 Spring Integration 2.2.6을 고수해야합니다. 더 높은 Spring 버전을 사용하려는 시도는 배포시에 발생합니다.
weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.springframework.core.MethodParameter.getNestedParameterType()Ljava/lang/Class;
Oracle-JRF 임베디드 Spring Framework는 클래스 로더에 의해 선택되기 때문입니다.
다중 서버 도메인에서 JRF를 특정 서버 인스턴스에 배포하지 않아도 문제는 해결되지 않지만 JRF가없는 전체 도메인에서는 문제가 해결됩니다.
대신 다음과 같이 WEB-INF / weblogic.xml 배포 설명자에서 prefer-web-inf-classes 매개 변수를 사용하는 것이 트릭입니다.
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd"> <wls:container-descriptor> <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes> </wls:container-descriptor> </wls:weblogic-web-app>
JRF 계측을 사용하는 WebLogic 도메인에서 Spring Framework 4.2의 이점을 누릴 수 있습니다. 물론 WAR 파일 어셈블리에 Spring core 4.2 및 관련 종속성을 포함하는 것을 잊지 마십시오 (예 : WEB-INF / lib / spring * .jar를 포함하도록 빌드 된 .war을 확인하십시오).
from https://stackoverflow.com/questions/11476874/weblogic-10-3-5-overriding-spring-version by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 최대 절전 모드, Java 9 및 SystemException (0) | 2018.12.15 |
---|---|
[SPRING] 새로운 Spring UriComponentsBuilder를 사용한 URL 인코딩 (0) | 2018.12.15 |
[SPRING] 클래스 경로에서 Spring WebApplicationInitializer 유형을 감지하지 못함 (0) | 2018.12.15 |
[SPRING] Java Spring @ 스케줄 된 작업 두 번 실행 (0) | 2018.12.15 |
[SPRING] @Value 스프링 주석을 사용하여지도를 삽입하는 방법은 무엇입니까? (0) | 2018.12.15 |