상업 미들웨어(EJB, jndi 데이터 소스, 로그 관리, 메모리 관리, 리소스 구성 관리...)로서의 weblogic은 일부 오픈 소스 무료 소형 컨테이너의 범위를 벗어납니다.
Weblogic은 weblogic Inc.에서 처음 개발되었으며 나중에 BEA에 합병되었습니다. 마침내 BEA는 Oracle에 합병되었습니다.
Weblogic은 대규모 분산 웹 애플리케이션, 네트워크 애플리케이션 및 데이터베이스 애플리케이션을 개발, 통합, 배포 및 관리하는 데 사용되는 Java 애플리케이션 서버입니다.
따라서 프로젝트의 온라인 릴리즈와 배포를 위한 서버로는 일반적으로 weblogic이 사용되며, 로컬 연구개발에는 Tomcat/Jetty.... 소형 컨테이너가 주로 사용됩니다.
이는 필연적으로 문제를 일으킬 것입니다. 로컬에서 잘 실행되는 웹 프로그램은 weblogic에 배포될 때 어떤 종류의 문제가 발생합니다.
대부분의 문제는 weblogic이 의존하는 jar와 프로젝트의 jar(동일한 jar, 다른 버전) 간의 충돌로 인해 발생하거나 weblogic이 해당 프로젝트 jar를 지원하지 않아 발생합니다.
weblogic 배포 시 문제가 있는 경우(3가지를 직접 요약해 보세요):
1. 회사에서 사용하는 weblogic 버전을 확인하고 공식 홈페이지에서 해당 weblogic 버전에서 지원하는 표준을 읽어보세요
2. weblogic 오류 로그를 확인합니다. 충돌하는 jar을 확인하거나 weblogigc에서 지원하지 않는 jar를 확인합니다.
3. 충돌하는 jar의 경우 프로젝트 WEB-INFO 디렉터리에 weblogic.xml 구성 파일을 추가합니다.
4. weblogicc 버전에서 지원하지 않는 jar의 경우 weblogic 버전을 업그레이드하거나 프로젝트에서 사용하는 jar 버전을 줄이세요.
weblogic은 작은 버전이 많고 버전 간의 차이가 크기 때문에 적을 알아야만 무적일 수 있습니다.
weblogic 버전을 확인하는 방법은 여러가지가 있습니다. 가장 직접적인 방법은 weblogic을 설치한 동료에게 물어보거나 아래와 같이 리눅스에 로그인하는 것입니다.
배포된 버전을 배운 후 oracle weblogic 공식 웹사이트로 이동하세요. 가장 포괄적이고 권위 있는 문서입니다.
해당 버전 포인트 뷰 라이브러리를 찾아 뛰어들어보세요. 전체 버전에 대한 개요가 있습니다. 우리의 초점은 weblogic 버전에서 지원하는 표준에 맞춰져야 합니다.
JDK, EL, Servlet, JAX-RS, JAX-WS....
위의 특정 지원 표준과 배포 오류의 특정 클래스 및 방법을 사용하면 올바른 솔루션을 처방할 수 있습니다.
다음은 weblogic을 배포할 때 발생하는 몇 가지 일반적인 오류 예외 목록입니다(추가 항목에는 더 많은 오류가 있습니다).
java.lang.UnsupportedClassVersionError: 지원되지 않는 major.minor 버전 51.0(weblogic Jdk 버전 및 프로젝트 jdk 버전 일관성 없음)
request.getRealpath()가 null입니다(service-API.JAR 및 weblogic. 클래스를 사용하여 thread.currentthRead()를 로드합니다. GetContextClassLoader()
Classnotfo undexception: org.hibernate.hql.ast.HqlToken (weblogic은 이미 antlr.jar의 이전 버전에 의존하고 있습니다)
이러한 문제를 해결하는 방법에는 일반적으로 세 가지가 있으며 배포 문제가 발생할 때 직접 연습할 수 있습니다.
a. weblogic에서 충돌하는 jar 폴더를 삭제합니다.
(1) /bea/weblogic12.1.3/server/lib/weblogic.jar에서 충돌하는 폴더를 삭제합니다.
(2) 충돌 XXX를 복사합니다. .jar을 /bea/weblogic12.1.3/server/lib로 복사하고 weblogic을 다시 시작합니다.
b. 특정 jar를 먼저 로드하도록 시작 스크립트를 수정합니다.
(1) 충돌하는 jar 패키지를 ${DOMAIN_HOME}/lib 디렉터리에 복사합니다.
(2) ${DOMAIN_HOME}/bin에서 startWeblogic.sh 파일을 찾아 텍스트 편집기로 열고 다음 내용을 추가합니다.
export first_classpath=${DOMAIN_HOME}/lib/xxxx.jar SAVE_CLASSPATH="${first_classpath}:${CLASSPATH}"
c를 전달합니다. 애플리케이션 구성, 애플리케이션 jar를 먼저 로드하세요
weblogic 버전을 사용하지 않기 때문에 weblogic 구성 항목이 달라지므로 인터넷에서 무턱대고 복사하지 마세요.
공식 웹사이트 버전 설명(다른 버전의 경우 1213만 변경):
Prefer-application-resources/prefer-application-packages 주의(애플리케이션 해당 jar 사전 로드) 노드 구성:
<?xml version="1.0" encoding="UTF-8"?><weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"><container-descriptor><prefer-web-inf-classes>false</prefer-web-inf-classes><prefer-application-packages><package-name>预先加载项目 lib 中的包名,支持通配符</package-name><package-name>com.sun.faces.*</package-name><package-name>com.bea.faces.*</package-name></prefer-application-packages></container-descriptor></weblogic-web-app>
솔루션 a/b/c 중에서 솔루션 c가 최적의 솔루션입니다. 프로덕션 환경으로서 weblogic은 여러 애플리케이션을 배포할 수 있으며 마음대로 다시 시작할 수는 없습니다.
솔루션 a와 b는 weblogic의 무결성을 파괴하고 weblogic에 배포된 다른 응용 프로그램에서 문제를 일으킬 수 있습니다.
위 내용은 weblogic을 배포할 때 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!