2012-05-16 1 views
0

Java 웹 응용 프로그램이 Apache Tomcat에서 작동했습니다. 작업을 위해 제 3 자 라이브러리가 필요합니다 (특히 jasperreports 3.7.2). 그러나 이제 WebLogic에서 애플리케이션을 이전해야했습니다. 그리고 그것은 이전에 (Tomcat에서) 사용하고 있던 라이브러리가 아니라이 라이브러리의 다른 버전을 사용하고있는 것처럼 보입니다. (기본적으로 WebLogic과 함께 제공되는 것 같습니다.) 구체적인 버전의 라이브러리를 지정하고 WebLogic에서이를 사용하게하려면 어떻게해야합니까? 전에는 웹 로직을 사용한 적이 없습니다. 내가 배치 디스크립터에 뭔가를 입력해야할까요? 답장을 보내 주셔서 감사합니다.웹 응용 프로그램을 Tomcat에서 WebLogic로 이동할 때 라이브러리 버전이 잘못되었습니다.

+0

재스퍼 보고서를 직접 가져 왔습니까? 클래스 로딩 순서를 변경 했습니까? –

+0

첫 번째 질문을 정말로 이해하지 못합니다. 내가 아는 바와 같이 jasperreports 라이브러리는 WAR 아카이브 내부의 WEB-INF/lib 폴더에 있습니다. 클래스 로딩 순서를 변경하지 않았습니다. – kant

+0

jasperreports는 기본적으로 Weblogic의 일부가 아닙니다. ClassNotFoundExcpetion 또는 NoClassDefFoundError 오류가 발생합니까? – JoseK

답변

1

전쟁에서 WEB-INF/lib 내부에있는 JAR를 갖고 있다면, Weblogic이 Classloader에있을 수있는 다른 병 위에 그 jar를 사용하도록 지정할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-web-app 
xmlns="http://www.bea.com/ns/weblogic/90" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic- web-app.xsd"> 
    <container-descriptor> 
     <prefer-web-inf-classes>true</prefer-web-inf-classes> 
    </container-descriptor> 
</weblogic-web-app> 

:

  • 여기

이 예제 weblogic.xml의이다 (즉, web.xml 옆에 WEB-INF에 간다)는 weblogic.xml 웹 응용 프로그램 배포 설명자에 prefer-web-inf-classes 요소를 사용하여 참고 :이 용도에서는 모든 WEB_INF/lib 클래스가 클래스 경로의 다른 버전보다 우선합니다.

관련 문제