일과 삶, 그것의 조화

웹로직에서의 인코딩 문제

insummus 2008. 8. 1. 08:25

WebLogic 8.1 sp3

WAS 의 charaterset 과 사용하고자 하는 charaterset 가 틀림으로 인해서,
웹페이지에서 보낼때 사용한 charaterset 을, WAS에서 받을때,
다시 WAS의 charaterset으로 변경하는 경우가 발생한다.
(웹로직 WAS는 UTF-8을 기본적으로 사용하고, 내가 쓰려고 했던 것은 EUC-KR)

그래서,
해당 어플리케이션의 weblogic.xml 을 수정하여,
WAS와 통신하는 request, respone 객체의 charaterset 을 설정한다.

weblogic.xml

<jsp-descriptor>
   <jsp-param>
       <param-name>encoding</param-name>
       <param-value>euc-kr</param-value>
    </jsp-param>
</jsp-descriptor>


<charset-params>
  <input-charset>
    <resource-path>/*</resource-path>
    <java-charset-name>EUC-KR</java-charset-name>
  </input-charset>
</charset-params>





 인코딩에 대한 조금 더 자세한 부분을 보고 싶다면 참조..

자세히보기

Release Notes

WebLogic Server의 국제화

다음 절에서는 한글 환경에서의 WebLogic Server 사용에 관한 일반적인 정보를 설명합니다.

WebLogic Server의 주요 국제화 기능은 다음과 같습니다.

  • WebLogic Server에서는 모든 문자를 유니코드로 취급합니다. 문자 데이터를 입력하거나 출력할 때는 항상 코드 변환이 수행됩니다.
  • 인코딩 변환은 WebLogic Server, J2EE 구성요소 및 WebLogic Server 컨테이너 자원에 대해 각각 적절히 지정해야 합니다.
  • 인코딩 변환을 지정하지 않으면 기본 인코딩 변환이 적용됩니다.
  • 다양한 기본 인코딩 변환 유형이 있으며 그 중 일부는 운영 체제의 로케일을 따르지 않습니다.

WebLogic Server를 사용하여 다중 바이트 문자가 포함된 데이터를 처리하는 분산 시스템을 빌드하려면 먼저 Java 및 J2EE에 대한 적합한 인코딩을 지정하는 방법을 알아야 합니다. 또한 WebLogic Server에 연결된 시스템(예: 운영 체제, 인터넷, 백 엔드 시스템)의 인코딩 처리를 신중히 고려하여 인코딩 변환을 조절해야 합니다.

다음 절에서는 WebLogic Server에서의 인코딩 처리에 대해 간단히 설명합니다.

유니코드 사용

WebLogic Server는 100% 퓨어 Java 애플리케이션 서버 프로그램으로, 서버 내부 인코딩에 유니코드를 사용합니다.

따라서 WebLogic Server에서는 각 언어의 문자를 유니코드로 처리할 수 있을 경우 모든 언어의 문자를 동시에 처리할 수 있습니다.

인코딩 변환

인코딩 변환은 WebLogic Server에서 외부와 문자 데이터를 교환할 때 필요합니다.

일반 운영 체제의 경우 Java의 내부 인코딩 방식인 유니코드를 지원하는 환경이 거의 없습니다. 운영 체제는 각 플랫폼에 대해 개별적으로 정의되는 '기본 인코딩'이라는 인코딩으로 작동합니다. 시스템별로 기본 인코딩의 예를 들면, Windows 시스템은 언어와 관련된 코드 페이지이고, Unix 시스템은 LANG 환경 변수로 지정된 로케일에 해당하는 인코딩이며, 데이터베이스는 데이터베이스를 만들 때 지정된 문자 집합이거나 클라이언트가 지정한 문자 집합입니다.

이 때문에 WebLogic Server에서 입력 및 출력이 수행될 때 기본 인코딩과 유니코드 간의 인코딩 변환이 필요합니다. WebLogic Server가 운영 체제나 외부 자원과 문자 데이터를 교환할 때는 항상 인코딩 변환이 이루어집니다.

주의 사항 직렬화된 Java 클래스 스트림에 포함된 문자는 클래스의 내부 정보에서 UTF-8로 인코딩된 유니코드로 저장됩니다. 이는 직렬화된 스트림에 대해 코드 변환을 할 필요가 없음을 의미합니다. 예를 들어, EJB나 RMI에 대해서는 인코딩을 고려할 필요가 없습니다.

인코딩 변환은 개별 문자에 대해 수행되므로 프로세스에 많은 양의 CPU 자원이 사용됩니다. 따라서 시스템 성능 향상을 위해 애플리케이션 디자인 시 코드 변환을 활용하지 않는 것이 좋습니다.

서버 자체의 인코딩 변환과 WebLogic Server 애플리케이션 구성요소 및 자원의 인코딩 변환의 구분

WebLogic Server에서 서버 자체의 인코딩 변환과 WebLogic Server의 애플리케이션 구성요소 및 자원에 대한 인코딩 변환은 서로 독립적입니다.

WebLogic Server에서 서버 로그나 관리 콘솔의 인코딩은 애플리케이션 구성요소의 인코딩이나 WebLogic Server에서 제공하는 컨텐트의 언어에 관계 없이 서버 Java VM의 기본 인코딩이나 브라우저의 언어 설정에 의해 결정됩니다.

또한 WebLogic Server가 작동하고 있는 로케일 또는 언어와는 독립적으로 WebLogic Server의 동작을 구성할 수 있습니다.

WebLogic Server의 컨테이너에 구성된 자원에 대해 개별적으로 인코딩 변환을 설정할 수도 있습니다.

WebLogic Server 자체의 인코딩 변환에는 다음이 포함됩니다.

  • WebLogic Server의 시스템 로그 출력
  • 관리 콘솔의 페이지 인코딩
  • WebLogic Server와 로컬 파일 시스템 간의 파일 I/O

개별 애플리케이션의 인코딩 변환에는 다음이 포함됩니다.

  • JSP 파일
  • Servlet
  • DD 파일
  • XML
  • 웹 서비스

WebLogic Server의 자원에는 다음이 포함됩니다.

  • JDBC 연결
  • WTC 연결 등

WebLogic Server에서 인코딩을 지정하는 경우 어떤 카테고리에 대해 인코딩을 지정하는지 확인해야 합니다. 그런 다음 유효한 문자 객체를 만들 수 있는지, WebLogic Server의 문자 객체를 원하는 인코딩으로 제대로 변환할 수 있는지 확인해야 합니다.

위에서 설명한 대로 올바른 설정을 위해서는 인코딩 변환의 동작을 알아야 합니다. 인코딩 변환을 지정하지 않으면 애플리케이션이 다중 바이트 문자를 올바르게 처리하지 못할 수 있습니다.

인코딩 변환을 지정하지 않으면 해당 상황에 적합한 기본 인코딩 변환이 사용됩니다. 기본 인코딩은 대상의 사양이나 환경에 따라 달라질 수 있습니다.


기본 인코딩의 예

WebLogic Server의 동작에 영향을 주는 기본 인코딩은 다음과 같습니다.

  • 서버 VM의 기본 인코딩
  • J2EE의 기본 인코딩
  • XML의 기본 인코딩
  • HTTP 프로토콜의 기본 인코딩
  • 브라우저의 기본 인코딩
  • 웹 서비스(예: SOAP, WSDL, UDDI) 등의 기본 인코딩

전형적인 기본 인코딩의 예

  • 일반적으로 한글 버전 Windows에서 서버 VM의 기본 인코딩은 MS949입니다.
  • 일반적으로 J2EE의 기본 인코딩은 ISO-8859-1입니다.
  • 일반적으로 XML의 기본 인코딩은 utf-8입니다.
  • 일반적으로 HTTP의 기본 인코딩은 us-ascii입니다.

위에서 설명한 대로 각 대상마다 사용되는 기본 인코딩이 서로 다르므로 올바른 인코딩을 지정하지 않으면 WebLogic Server에서 한글을 제대로 처리할 수 없습니다. 인코딩 변환을 조절하려면 다음 절을 이해해야 합니다.

Java 언어에서 인코딩이라는 용어는 "문자 집합"을 의미합니다. 문자 집합을 설명하는 단어는 많이 있지만 각 단어의 정의는 약간씩 다릅니다.

인코딩 또는 문자 집합이란 특정 언어의 문자 집합에 컴퓨터가 읽을 수 있는 코드를 할당하여 컴퓨터에서 해당 문자를 처리할 수 있게 하는 정의를 의미합니다. 이러한 정의는 Java 용어로는 "인코딩", 인터넷 용어로는 "문자 집합"이라고 합니다.

Java 언어는 I/O 섹션에서 이러한 차이를 수용하여 내부에서 모든 문자를 유니코드로 처리합니다. 즉, Java는 문자 집합에 대한 인코딩 정의가 있을 경우 모든 문자 집합을 처리할 수 있습니다. 기본적으로 Java는 다양한 시스템 간의 인코딩 차이를 수용할 수 있습니다. 그러나 현재 기존의 모든 인코딩 차이를 사소한 부분까지 모두 처리하는 인코딩 변환 테이블은 없습니다. 또한 기존의 인코딩 테이블에는 유니코드와의 일관성 문제에서 비롯된 몇 가지 제한 사항이 있습니다.

Java 웹 애플리케이션 서버에서는 Java 인코딩 이름과 MIME 문자 집합 간의 차이가 매우 중요합니다. MIME 문자 집합은 IANA에서 정의하며 인터넷 및 XML 파일에서 사용됩니다. WebLogic Server에서는 이러한 차이를 수용하기 위해 Java 인코딩 이름과 IANA 문자 집합 이름을 연관시키는 매핑 테이블을 사용합니다. WebLogic Server에서는 이 테이블을 사용하여 Java 인코딩 이름이 'MS949'이며 JSP에서 'ko_KR'로 정의된 파일을 처리할 수 있습니다. WebLogic Server의 매핑 테이블을 수정하여 'ko_KR' 문자 집합을 'cp943' Java 인코딩으로 처리할 수 있습니다.

Xerces는 WebLogic Server의 기본 제공 XML 파서로, 자체적으로 IANA 대 Java 매핑 테이블을 갖추고 있습니다. 이 매핑은 사용자 정의가 불가능합니다. 예를 들어, IANA 문자 집합 이름인 'ko_KR'은 Java 인코딩 이름인 'EUC-KR'에 매핑됩니다.

기본적으로 WebLogic Server에서는 Java 인코딩 이름을 사용하여 인코딩을 지정합니다. J2EE, 인터넷 또는 XML에서는 IANA 문자 집합 이름을 사용합니다. 필요하면 이 매핑을 수정할 수 있습니다.


설치

WebLogic Server에서는 한글 버전 설치 관리자와 영어 버전 설치 관리자를 제공합니다. 한글 버전과 영어 버전은 BEA Systems, Inc. 웹 사이트에서 다운로드할 수 있습니다.

두 설치 관리자는 WebLogic Server의 동작에 영향을 주는 프로그램 파일 면에서 서로 동일하며, 서로 동일한 소프트웨어를 갖는 것으로 간주할 수 있습니다. 또한 영어 설치 관리자를 통해 설치된 WebLogic Server와 한글 설치 관리자를 통해 설치된 WebLogic Server 간에 상호 운용성 문제가 없습니다. 한글 버전 설치 관리자와 영어 버전 설치 관리자 간의 차이점은 다음과 같습니다.

공통점:

  • 모든 WebLogic Server 클래스 파일(weblogic.jar 등)
  • 버전 문자열
  • 메시지 카탈로그 및 관리 콘솔 온라인 도움말

차이점:

  • 변환된 일부 텍스트 파일
  • about_wls/readme.txt/index.jsp 또는 html
  • WebLogic Builder 온라인 도움말

WebLogic Server 8.1 한글 버전에서 다음 기능은 사용할 수 없습니다.

  • 스마트 업데이트
  • 네트워크 설치 관리자

WebLogic Server 시스템 관리

다음 항목은 WebLogic Server의 JVM 기본 인코딩으로 작동합니다.

  • WebLogic Server의 오류 로그 출력
  • 로컬 파일 시스템의 파일 입력 및 출력

다음 항목은 브라우저의 기본 언어로 작동합니다.

  • 관리 콘솔

서버 기본 인코딩으로 작동하는 로그 출력 등에 대한 인코딩을 변경하려면 다음 절차를 사용하십시오.

WebLogic Server 및 Java Virtual Machine의 인코딩

WebLogic Server에서는 인코딩을 다양하게 설정할 수 있습니다. 예를 들어 ContentType/Charset 매개변수를 설정하여 WebLogic Server에서 클라이언트로 출력하는 인코딩을 지정할 수 있습니다. weblogic.codeset 속성을 사용하여 WebLogic jDriver를 사용할 때 JDBC 연결의 인코딩을 지정할 수도 있습니다. 이 문서에서는 이들을 포함하여 여러 가지 다른 기능들에 대해 설명합니다. 특정 범위에 대해 지정하는 인코딩과 WebLogic Server가 실행되는 Java VM의 기본 인코딩 사이에는 아무런 관계도 없습니다. Java VM이 영어 로케일에서 실행되는 경우에는 한글 JSP를 사용하여 서비스를 제공하는 데 문제가 없습니다. 그러나 다음 문자열의 처리는 Java VM 기본 인코딩에 따라 달라집니다.

  • WebLogic Server의 오류 로그 출력
  • 로컬 파일 시스템의 파일 입력 및 출력

이러한 문자열에는 각 플랫폼의 Java VM 기본 인코딩(file.encoding Java 시스템 속성으로 지정된 인코딩)이 사용됩니다. 예를 들어, WebLogic Server에서 터미널 콘솔에 출력하는 로그 메시지의 언어 및 인코딩은 Java VM에 지정된 인코딩에 따라 달라집니다. file.encoding Java 시스템 속성은 플랫폼 환경과 시스템 로케일을 기반으로 합니다. WebLogic Server 로그 메시지의 언어 및 인코딩을 전환하려면 그에 따라 시스템 로케일을 전환해야 합니다. Java VM이 시작된 후에는 Java VM 기본 인코딩을 동적으로 전환할 수 없습니다. WebLogic Server를 재시작하기 전에 다음 설정을 확인해야 합니다.

Windows 2000/Windows NT의 경우

제어판국가별 옵션에서 영어(미국) 또는 한국어를 선택합니다. 이에 따라 서버가 CP1252 또는 MS949를 기본 인코딩으로 사용할 수 있게 됩니다.

UNIX의 경우

LANG 환경 변수에서 플랫폼이 지원하는 로케일을 지정합니다.

다음은 서버 인코딩 및 LANG 환경 변수의 설정값입니다.

표 2-1 서버 인코딩 및 LANG 환경 변수의 설정값

플랫폼

인코딩

LANG 환경 변수

Solaris

EUC-KR

ko 또는 ko_KR

HP

EUC-KR

ko_KR.eucKR, ko_KR

예를 들어, Solaris에서 EUC-KR을 지정할 경우 LANG 설정값은 다음과 같습니다.

LANG=ko

서버 인코딩 확인 방법

The Java VM의 기본 인코딩이 WebLogic Server의 기본 인코딩이 됩니다. 다음 단계에 따라 관리 콘솔에서 로그 메시지를 참조하여 인코딩을 확인할 수 있습니다.

  1. 관리 콘솔의 왼쪽 분할창에서 서버 이름을 마우스 오른쪽 버튼으로 클릭한 후 View Server Log를 선택합니다.
  2. Customize This View를 클릭합니다.
  3. Sub String 입력란에 "file.encoding"을 입력합니다.
  4. Apply 버튼을 클릭합니다.

    표시된 인코딩이 서버 인코딩입니다.

관리 서버 및 관리되는 서버의 구성에 관한 정보

WebLogic Server에서는 도메인 전체에 동일한 인코딩을 사용해야 합니다.

WebLogic Server에서는 도메인의 모든 서버에 동일한 인코딩 설정을 사용해야 합니다.

예를 들어, 도메인 내 Windows 플랫폼이 존재하는 경우 MS949와 같은 ko_KR 인코딩을 사용하여 표준화합니다. 다른 인코딩을 가진 서버의 경우 해당 서버의 로그가 올바르게 표시되지 않습니다.

클러스터 구성에 관한 정보

동일한 클러스터 내의 모든 WebLogic Server에 대해 동일한 인코딩을 사용해야 합니다.

WebLogic Server에서는 클러스터의 모든 서버에 동일한 인코딩 설정을 사용해야 합니다.

예를 들어, 클러스터 내에 Windows 플랫폼이 존재하는 경우 MS949와 같은 ko_KR 인코딩 유형을 사용하여 표준화합니다. 다른 인코딩을 가진 서버의 경우 해당 서버의 로그가 올바르게 표시되지 않습니다.

config.xml의 인코딩

config.xml 파일은 UTF-8로 입출력됩니다. 텍스트 편집기에서 직접 파일을 편집할 때는 utf-8로 읽고 저장합니다.

WebLogic Server를 웹 서버로 사용하기 위한 정보

다음은 WebLogic Server를 웹 서버로 사용하기 위한 정보입니다.

HTTP 헤더에 contentType charset 매개변수를 추가하여 HTML 파일을 지원하려면 HTML 파일의 인코딩을 명시적으로 지정할 수 있는 다음 정의를 web.xml 파일에 삽입합니다.

<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=ko_KR</mime-type>
</mime-mapping>

그러면 다음과 같은 META 태그를 사용하여 HTML 파일에서 문자 집합 설정을 생략할 수 있습니다.

<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=ko_KR">

JDBC 연결

JDBC 연결 풀을 만들 때는 다중 바이트 문자를 사용하는 DB 연결에 대한 적절한 인코딩을 지정해야 합니다. 웹 계층과 DB 계층 간에 인코딩 변환 매핑을 일치시켜야 할 수도 있습니다.

자세한 내용은 "WebLogic jDriver for Oracle(Deprecated)"의 "WebLogic jDriver Advanced Features" 장에 있는 "Codeset Support"를 참조하십시오.

배포

WebLogic Server에서 J2EE 구성요소의 DD 파일에 있는 다중 바이트 문자에 대한 인코딩은 XML 선언에 지정된 대로 처리됩니다 DD 파일의 XML 선언에 인코딩 속성이 없거나 파일에 XML 선언이 없는 경우에는 파일이 UTF-8로 처리됩니다.

WebLogic Builder 또는 관리 콘솔에서 DD 파일을 편집하고 변경 내용을 저장할 때 파일의 인코딩은 원래 파일대로 유지됩니다.

WebLogic Builder 또는 관리 콘솔에서 만든 DD 파일에는 XML 선언이 없습니다. 이러한 파일의 인코딩을 변경할 때는 XML 선언의 인코딩 속성과 파일의 인코딩 변환을 적절하게 설정해야 합니다.

관리 콘솔 사용에 관한 정보

관리 콘솔 시작 시 언어

관리 콘솔을 처음 시작할 때 표시되는 언어는 웹 브라우저의 환경 설정에 지정된 언어입니다. 예를 들어, 한글 버전의 Windows 및 Internet Explorer를 사용하는 경우 관리 콘솔은 처음 시작될 때 한글로 표시됩니다. 처음 표시되는 언어를 영어로 변경하려면 브라우저의 환경 설정 언어를 영어로 설정하면 됩니다.

WebLogic Server 8.1의 관리 콘솔에서 선택할 수 있는 언어는 다음과 같습니다.

  • 한국어/EUC-KR
  • 영어

관리 콘솔 시작 후 언어 전환

콘솔 홈 페이지에 있는 Preferences 페이지의 Language 드롭다운 목록에서 원하는 언어를 선택합니다.


프로그래밍

Servlet 및 JSP 사용에 관한 정보

인코딩 변환, 표준, 범위 및 환경 설정

WebLogic Server는 Java 애플리케이션 프로그램입니다. 모든 문자는 내부적으로 유니코드 문자열로 처리됩니다. 반면 HTML 페이지에는 여러 가지 문자 집합이 사용됩니다. WebLogic Server에서 HTML 데이터를 처리할 때는 Java 인코딩 변환기를 사용하여 유니코드와 HTML 문자 집합 간의 인코딩 변환이 수행됩니다. WebLogic Server를 사용하는 경우 서버에서 내부적으로 처리하는 유니코드 문자열과 HTML 인코딩 간의 애플리케이션에서 변환 처리 방법이 중요합니다.

WebLogic Server에는 특정 범위에 따라 인코딩을 결정하기 위한 다양한 매개변수가 있으며 사용 중인 애플리케이션에 대한 이러한 매개변수를 사용하여 문제를 성공적으로 해결할 수 있습니다.

또한 WebLogic Server에서는 JavaVM 기본 인코딩에 관계없이 사용하는 각 모듈에 인코딩을 설정할 수 있습니다.

WebLogic Server에서 인코딩을 설정하는 방법 중 일부는 J2EE 사양에 정의되어 있습니다. 다른 방법은 WebLogic 전용 사양입니다. 이러한 방법을 모두 지정할 필요는 없습니다. 다음 설명을 읽고 사용자의 환경에 가장 적절한 인코딩 설정을 조합하십시오.

인코딩 설정

JSP/Servlet과 관련된 인코딩 설정은 다음과 같습니다.

  • Servlet에서 출력되는 HTTP 응답에 사용되는 Writer 인코딩
  • JSP 파일 인코딩
  • JSP에서 출력되는 Writer 인코딩
  • GET/POST 등의 HTTP 요청 인코딩(특정 요청 URL용)
  • GET/POST 등의 데이터 인코딩(특정 HTTP 요청용)
  • JSP 컨테이너 인코딩
  • Java 인코딩과 IANA 문자 집합의 매핑

기본적으로 범위의 정의가 특정적일수록 더 높은 우선순위를 갖습니다. 예를 들어, ko_KR을 JSP 컨테이너에 대한 기본 인코딩으로 설정하고 특정 JSP의 페이지 태그에서 EUC-KR을 지정한 경우에는 페이지 태그에서 지정된 인코딩의 우선순위가 높아 EUC-KR이 사용됩니다.

애플리케이션 전체에서 동일한 특정 인코딩을 사용하거나, JSP 컨테이너 레벨과 같이 넓은 범위에 걸쳐 우선적으로 사용하려는 인코딩을 설정하는 것이 좋습니다. 특수 인코딩 처리를 필요로 하는 부분에 대해서는 해당 JSP 또는 servlet의 좀더 특정한 레벨에서 인코딩을 설정합니다.

한글 사용을 위한 일반 개요

다음과 관련하여 HTTP 요청 및 HTTP 응답에 대해 인코딩을 지정하지 않으면 ISO-8859-1 인코딩이 사용됩니다.

Servlet을 사용하는 경우

  1. HTTP 응답의 인코딩 지정 --- response.setContentType()
  2. 브라우저 표시의 인코딩 지정 --- Content-Type
  3. HTTP 요청의 인코딩 지정 ---- request.setCharacterEncoding 또는 <input-charset>

JSP를 사용하는 경우

  1. JSP 파일의 인코딩 지정 --- 페이지 태그의 pageEncoding 지시문(선택적)
  2. 페이지 출력의 인코딩 지정 --- 페이지 태그의 contentType 지시문
  3. 브라우저 표시의 인코딩 지정 --- Content-Type
  4. HTTP 요청의 인코딩 지정 ---- request.setCharacterEncoding 또는 <input-charset>

Servlet과 JSP를 모두 사용하는 경우

Java 인코딩과 IANA 문자 집합의 매핑(weblogic.xml에서 설정)

다음 절에서는 Servlet과 JSP의 각 설정에 대해 자세히 설명합니다.

Servlet을 사용하는 경우

HTTP 응답의 인코딩 지정 --- response.setContentType()

Servlet에 의해 생성된 HTML 페이지에 대한 인코딩을 지정하려면 setContentType() 메소드를 사용합니다. setContentType()을 호출하면 다음을 지정할 수 있습니다.

  • 응답을 위한 HTTP 헤더의 ContentType 속성
  • 응답 출력에 사용된 Writer 인코딩

따라서 Writer를 가져오기 전에 setContentType()을 호출해야 합니다.

res.setContentType("text/html;charset=ko_KR");
PrintWriter out = res.getWriter();

이렇게 호출하면 HTTP 헤더에 contentType이 지정됩니다. 즉, 브라우저 표시에 사용할 인코딩도 지정됩니다.

HTTP 요청의 인코딩 지정 ---- request.setCharacterEncoding 또는 <input-charset>

이제 위의 방식을 사용하여 WebLogic Server에서 클라이언트로 보낸 데이터인 HTTP 응답에 대해 인코딩 설정을 마쳤습니다. 다음에는 클라이언트에서 WebLogic Server로 데이터를 보낼 때 HTTP 요청의 인코딩을 설정하는 방법을 설명합니다.

HTTP 요청의 인코딩 지정 방법에는 다음 세 가지가 있습니다.

  • HTTP 요청의 contentType에 문자 집합 작성

    이 방법은 HTTP 사양에 가장 적합한 방법입니다. 그러나 Microsoft Internet Explorer 또는 Netscape 브라우저에서는 값을 지정할 수 없습니다.

  • 서버에서 HTTP 요청의 인코딩 지정

    request.setCharacterEncoding() 메소드를 사용합니다. 각 요청에 대해 인코딩을 지정할 수 있습니다. 동적 인코딩 제어와 같은 세부 오퍼레이션을 수행할 수도 있습니다. 또한 setCharacterEncoding() 메소드는 Servlet 2.3 사양을 따릅니다. 따라서 애플리케이션을 이동할 수 있습니다.

    request.setCharacterEncoding("ko_KR");
    String pval = request.getParameter(pname);
  • 웹 애플리케이션의 배포 디스크립터(weblogic.xml)에서 요청 URL의 인코딩을 지정하는 <input-charset>를 이용합니다.

    WebLogic Server 6.1 이상 버전에서는 <input-charset>가 weblogic.xml에서 설정됩니다. 그러나 WebLogic Server 6.0의 경우에는 이것이 web.xml에서 설정됩니다. 또한 구성 요소 이름 등이 변경되었습니다. 따라서 WebLogic Server 6.0에서 마이그레이션하는 경우 weblogic.xml과 web.xml 파일을 수정해야 합니다. 마이그레이션 가이드를 참조하십시오.

<input-charset>를 지정하려면 예를 들어 다음과 같이 요청 URL의 인코딩을 가져오도록 설정할 수 있습니다.

예:

  • ko_KR로 http://localhost:7001/webappa/path1/ 가져오기
  • EUC-KR로 http://localhost:7001/webappa/path1/ 가져오기

다음과 같이 배포 디스크립터(weblogic.xml)에서 대상 웹 애플리케이션에 대한 <input-charset>를 작성합니다.

<weblogic-web-app>에 포함된 <charset-param>에서, 인코딩을 지정하려는 요청 URL 경로와 HTTP 요청에 대해 지정하려는 인코딩을 IANA 이름으로 작성합니다.

Java 인코딩 이름과 IANA 문자 집합의 매핑에 대한 자세한 내용은 Java 인코딩과 IANA 문자 집합의 매핑(weblogic.xml에 설정) 절을 참조하십시오.

다음은 다중 인코딩을 처리하는 단일 웹 애플리케이션의 예제입니다.

아래 예제에서는 "/*"에 대한 인코딩을 ko_KR로 설정하고 "/rus/jo/*"에 대한 인코딩을 ISO-8859-1로 설정합니다.

<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name> ko_KR</java-charset-name>
</input-charset>
</charset-params>
<charset-params>
<input-charset>
<resource-path>/rus/joe/*</resource-path>
<java-charset-name>ISO-8859-1</java-charset-name>
</input-charset>
</charset-params>

이 설정에 대한 자세한 내용은 "Developing Web Applications for WebLogic Server"의 "charset-params"를 참조하십시오.

JSP를 사용하는 경우

JSP 파일의 인코딩 지정 --- pageEncoding(선택적)

WebLogic Server JSP 컨테이너 또는 JSP 컴파일러에서 JSP 파일을 읽는 데 사용할 인코딩을 지정하려면 다음과 같이 페이지 태그에서 pageEncoding 지시문을 지정합니다.

<%@ page contentType="text/html; charset=ko_KR" pageEncoding="ko_KR" %>

페이지 출력의 인코딩 지정 --- 페이지 태그의 contentType 지시문

페이지 출력의 인코딩을 지정하려면 다음과 같이 페이지 태그에서 contentType 지시문을 지정합니다.

<%@ page contentType="text/html; charset=ko_KR" %>

페이지 지시문에서 contentType을 지정할 경우 HTTP 응답의 HTTP 헤더에서도 동일한 contentType이 지정됩니다. 즉, 브라우저 표시에 사용할 인코딩도 지정됩니다.

pageEncoding 지시문을 설정하지 않으면 JSP 파일을 읽기 위한 인코딩에 contentType 지시문이 사용됩니다.

JSP 컨테이너는 contentType 설정을 찾으면 JSP 파일의 파싱을 중지하고 파일 Reader를 새로 지정된 인코딩으로 전환한 다음 JSP 페이지를 처음부터 다시 파싱합니다. 한 파일에 contentType이 둘 이상 지정되어 있으면 파싱 오류가 발생합니다. 따라서 정적 포함 지시문을 사용하여 한 파일을 다른 파일에 포함시킬 때 두 파일에 개별적으로 인코딩이 지정되어 있으면 오류가 발생합니다. 동적 포함 지시문에서는 오류가 발생하지 않지만 문자가 깨집니다.

주의 사항: 한 파일에 contentType이 둘 이상 지정된 때에도 각 contentType이 동일한 인코딩을 지정하는 경우 파싱 오류가 발생하지 않습니다("정적 포함과 동적 포함의 인코딩 차이" 절 참조).

<jsp-param>
<param-name>backwardCompatible</param-name>
<param-value>true</param-value>
</jsp-param>

예를 들어, 정적 포함 지시문(<%@ include)을 사용하여 포함시킬 때 '포함 원본'과 '포함 대상'에 각각 고유한 페이지 지시문이 있고 하나의 변환 단위에 페이지 지시문이 여러 개 있을 경우, 각 페이지 지시문에서 동일한 인코딩을 지정하면 문제가 발생하지 않습니다.

HTTP 요청의 인코딩 지정

Servlet의 경우와 동일한 방법으로 JSP에서 HTTP 요청의 인코딩을 지정할 수 있습니다. 자세한 내용은 "Servlets을 사용하는 경우" 절을 참조하십시오.

<%
request.setCharacterEncoding("ko_KR");
String pval = request.getParameter(pname);
%>request.setCharacterEncoding or <input-charset>

Servlet과 JSP를 모두 사용하는 경우

Java 인코딩과 IANA 문자 집합의 매핑(weblogic.xml에서 설정)

setContentType() 메소드를 사용하거나 페이지 태그에서 contentType 지시문을 사용하여 인코딩을 지정할 때는 IANA 문자 집합 이름을 사용합니다. 그러나 Java 애플리케이션인 WebLogic Server에서 인코딩을 처리할 때는 이러한 값이 Java 인코딩 이름이어야 합니다. WebLogic Server는 내부적으로 기본 매핑도 포함하고 있으며 일반적으로 이 기본 매핑을 사용합니다. 기본 매핑에는 IANA에 정의되지 않은 매핑도 포함되어 있지만 대개 HTML의 Content-Type에서 사용됩니다. 자세한 내용은 WebLogic Server에 정의된 MIME-Java 인코딩 매핑 테이블을 참조하십시오.

예: x-EUC-KR ----> ko_KR

사용자가 직접 이 매핑을 변경할 수 있습니다. 애플리케이션의 배포 디스크립터에서 다음과 같이 매핑을 설정하십시오.

예를 들어, IANA 문자 집합 'ko_KR'은 Java 인코딩 'ko_KR'에 매핑되므로 WebLogic Server에서 contentType의 'ko_KR' 설정은 EUC-KR로 처리됩니다. ko_KR은 JDK1.4에서 EUC-KR의 별칭으로 사용됩니다.

주의 사항: Java 1.3에서 IANA 문자 집합 ko_KR은 MS949로 처리됩니다. JDK 1.1.8부터 JDK 1.4.0까지, JDK1.4.1 이상에서는 ko_KR이 EUC-KR로 처리됩니다.

따라서 기본 설정으로 @ 등의 MS949 특정 문자를 사용할 수 있습니다.

weblogic.xml에서 <charset-mapping>을 정의하여 기본 매핑을 덮어쓸 수 있습니다.

아래 예제에서 ko_KR은 MS949에 매핑됩니다.

<charset-params>
<charset-mapping>
<iana-charset-name>EUC-KR</iana-charset-name>
<java-charset-name>MS949</java-charset-name>
</charset-mapping>
</charset-params>

이 설정은 J2EE 사양을 따르지 않습니다. WebLogic Server 6.0에서 이 값은 web.xml에 설정되었습니다. WebLogic Server 6.1 이상에서는 웹 애플리케이션 배포 디스크립터인 weblogic.xml에 설정되도록 변경되었습니다. 이러한 변경은 WebLogic Server 6.0에서 마이그레이션하는 경우에 한합니다.


ISO-8859 인코딩으로 HTTP 요청을 인코딩하기 위한 방법

<input-charset>에서 ISO-8859가 HTTP 요청의 인코딩으로 지정되어 있으면 다음 방법을 사용하여 다른 인코딩으로 HTTP 요청을 가져올 수 있습니다.

예:

new String(request.getParameter(itemQ[i]).getBytes ("8859_1"), "EUC-KR")

그러나 HTTP 응답의 HTTP 헤더에서 contentType이 다음과 같이 지정된 HTTP 클라이언트에서는 이 방법을 사용할 수 없습니다. HTTP 헤더의 contentType에 지정된 인코딩이 <input-charset>에 지정된 인코딩보다 우선순위가 높기 때문입니다. 이 경우 애플리케이션 코드를 수정해야 합니다.

Content-Type: application/x-www-form-urlencoded;charset=ko_KR

정적 포함과 동적 포함의 인코딩 차이

정적 포함

<%@ include file="relativeURL" %>

이 경우 JSP 컴파일이 수행되기 전에 모든 포함 파일이 로드되고 하나의 파일에 모아집니다. 따라서 포함하는 파일에 인코딩이 지정되어 있으면 포함되는 파일은 인코딩이 지정되어 있지 않더라도 포함 파일과 동일한 인코딩을 사용하는 파일로 처리됩니다. WebLogic Server 6.1 이전 버전에, '포함 원본'과 '포함 대상'에 모두 동일한 인코딩이 지정되어 있으면 컴파일 오류가 발생하지 않습니다. WebLogic Server 8.1에서는 두 파일에 모두 고유한 페이지 지시문이 포함되어 있으면 컴파일 오류가 발생합니다. 이 문제를 방지하려면 weblogic.xml에서 'backwardCompatible'을 true로 설정합니다.

backwardCompatible'을 true로 설정하더라도 '포함 소스'와 '포함 대상'의 인코딩 설정이 다르면 JSP 컴파일 오류가 발생합니다.

동적 포함

<jsp:include page="{ relativeURL | <%= expression %>}" flush="true" />

동적 포함을 사용하는 경우 페이지는 로드될 때 포함되지 않고 태그 상태로 남아 있습니다. 이 페이지는 JSP가 실행되면 포함됩니다. 따라서 포함을 수행하는 JSP에 설정된 인코딩이 포함된 파일에는 적용되지 않습니다.

따라서 포함된 파일에서도 인코딩을 지정해야 합니다.

CGIServlet

다중 바이트 문자를 사용하는 CGI 서비스를 WebLogic Server의 CGI servlet으로 마이그레이션하는 경우 CGI 프로그램에서 생성된 HTTP 헤더에 적절한 contentType charset 매개변수를 지정해야 합니다. contentType을 설정하지 않으면 J2EE Servlet 컨테이너의 기본 인코딩인 ISO-8859-1이 사용됩니다.

또한 클라이언트에서 입력 문자열을 올바르게 받으려면 적절한 매개변수를 사용해야 합니다. 대상 웹 애플리케이션의 DD 파일에서 이 매개변수를 설정해야 합니다. 이 매개변수를 설정하지 않으면 ISO-8859-1이 사용됩니다.

WebService

SOAP 메시지 및 해당 인코딩 처리

SOAP 메시지 수신

WebLogic Server 웹 서비스의 인코딩 처리는 SOAP1.1 및 SOAP1.2 사양을 따릅니다(*참고 1). SOAP 1.1 사양을 기반으로 하는 HTTP/SOAP 메시지는 text/xml 미디어 유형이며, 이러한 메시지의 인코딩은 RFC2376에 따라 처리됩니다. 다음은 RFC2376 사양을 기반으로 하는 동작에 대한 설명입니다. SOAP 1.2 사양을 기반으로 하는 HTTP/SOAP 메시지는 application/soap+xml 미디어 유형이며, 이러한 메시지의 인코딩은 RFC3023에 따라 처리됩니다. 다음은 RFC 사양을 기반으로 하는 동작에 대한 설명입니다.

SOAP 1.1을 사용하는 경우:

  • HTTP 헤더의 ContentType charset 매개변수는 HTTP/SOAP 요청의 인코딩을 결정하는 데 사용됩니다.
  • XML 선언의 인코딩 속성은 무시됩니다.
  • contentType으로 문자 집합을 지정하지 않으면 메시지는 RFC2376에 따라 US-ASCII로 처리됩니다.

SOAP 1.2를 사용하는 경우:

  • HTTP 헤더의 ContentType charset 매개변수는 HTTP/SOAP 요청의 인코딩을 결정하는 데 사용됩니다.
  • XML 선언의 인코딩 속성은 무시됩니다.
  • contentType으로 문자 집합을 지정하지 않으면 XML 선언의 인코딩 속성이 사용됩니다.
  • contentType charset 매개변수나 XML 선언의 인코딩 속성을 지정하지 않으면 메시지는 utf-8로 처리됩니다.

WebLogic Workshop도 WebLogic Sever 8.1과 마찬가지로 이 사양에 따라 동작합니다. 따라서 HTTP/SOAP를 사용하여 WebLogic Workshop에서 개발된 웹 서비스를 호출하는 클라이언트에 대해 contentType charset이 올바르게 지정되어 있어야 합니다.

SOAP 메시지 전송

WebLogic Server에서 생성된 모든 HTTP/SOAP 메시지는 UTF-8로 인코딩됩니다. 즉, 생성 프로세스에서 SOAP 메시지의 ContentType 헤더에 'encoding=UTF-8'이 추가됩니다.

주의 사항: 영어 로케일에서 WebLogic Server를 시작하는 경우(예: UNIX에서 LANG=C가 지정된 경우) SOAP 메시지에는 us-ascii 문자만 사용할 수 있습니다. 다른 문자는 지원되지 않습니다. 웹 서비스에서 한글을 사용하려면 한국어 로케일에서 WebLogic Server를 시작해야 합니다.

영어 로케일로 시작된 WebLogic Server에서 us-ascii 이외의 문자를 사용하려면 WebLogic Server 시작 스크립트 파일에서 다음 시작 옵션을 설정합니다. WebLogic Server가 영어 로케일에서 실행되는 경우에도 utf-8로 메시지가 생성됩니다.

주의 사항: SOAP 메시지에는 UFT-8을 사용할 것을 권장합니다.

-Iweblogic.webservice.i18n.charset=utf-8

웹 서비스 홈 페이지

웹 서비스 홈 페이지는 서버 VM의 기본 인코딩으로 생성됩니다.

UDDI Explorer

UDDI Explorer에서는 us-ascii 문자만 지원하며 다중 바이트 문자를 올바르게 처리할 수 없습니다.

XML --- StreamParser에서 다중 바이트 문자 처리

WebLogic Server에서 XML Streaming API를 사용하여 생성된 XML 헤더에 인코딩 정보를 추가하려면 다음과 같이 ElementFactory 클래스의 createStartDocument()를 사용합니다.

XMLOutputStreamFactory factory = XMLOutputStreamFactory.newInstance();
XMLOutputStream output = factory.newOutputStream(new
OutputStreamWriter(new FileOutputStream(fname),"ko_KR"));
output.add(ElementFactory.createStartDocument("ko_KR","1.0"));
output.flush();

다음은 XML Streaming API를 사용한 한글이 들어 있는 XML 문서를 파싱하는 것에 대한 정보입니다. 주요 사항은 Xerces 파서 정보의 경우와 같습니다.

스트림을 통해 파서에 입력 내용을 제공할 때는 바이트 스트림을 사용합니다. 그러면 파서의 XML 인코딩 자동 감지 기능이 활성화됩니다. 이에 따라 파서가 XML 선언의 인코딩 속성으로 지정된 인코딩을 사용하여 문자 스트림을 생성할 수 있으므로 파싱이 올바르게 수행됩니다.

입력 내용이 유니코드 문자 스트림을 통해 제공될 경우 파서는 XML 헤더의 인코딩 설정을 무시합니다.

JDBC

BEA WebLogic Type4 Oracle Driver 사용

WebLogic Server 8.1에는 각 데이터베이스(Oracle, SQL Server, DB2 등)에 대해 BEA WebLogic Type4 Driver를 설치합니다. 다음은 일례로 Oracle용 WebLogic Type4 Driver 사용 환경 생성에 대한 설명입니다.

환경 설정

WebLogic Server 8.1에서는 WL_HOME\server\lib 디렉토리에 BEA WebLogic Type4 Driver를 설치합니다. 이러한 파일은 weblogic.jar의 manifest classpath에 저장되며 자동으로 서버의 classpath에 추가됩니다.
따라서, WebLogic Type 4 Driver를 사용하여 WebLogic Server의 JDBC 클라이언트(JSP, Servlet 등)에서 데이터베이스로 직접 연결할 수 있습니다. WebLogic4에서 사용되는 JDBC 클라이언트 프로그래밍에 대한 자세한 정보는 WebLogic Type 4 JDBC Drivers를 참조하십시오.

연결 풀 설정

관리 콘솔에서 연결 풀 설정

BEA WebLogic Type4 Oracle 드라이버를 사용하여 연결 풀을 구성할 때는 다음과 같이 설정해야 합니다.

자세한 정보는 WebLogic Type 4 JDBC Drivers를 참조하십시오.

관리 콘솔에서 연결 풀 설정

  1. 도메인 구성
  2. 관리 콘솔에서 서비스 > JDBC > 연결 풀 탭을 사용하여 새 JDBC 연결 풀
    구성
    을 엽니다.
  3. 데이터베이스 선택 화면에서 데이터베이스 유형을 Oracle로 설정하고 데이터베이스
    드라이버를 BEA Oracle Driver (Type 4) Version8.1.7,9.0.1,9.2.0
    으로 설정합니다.
  4. 다음 화면에서 연결 풀의 이름과 속성을 입력합니다.
  5. 데이터베이스 연결 시험 화면에서 드라이버 구성을 시험합니다.
  6. 연결이 성공적으로 이루어지면 다음 화면에서 만든 후 배포를 실행합니다.

구성 마법사를 사용하여 도메인을 만들 때의 연결 풀 설정

  1. 구성 마법사를 시작합니다.
  2. 옵션 템플릿을 선택한 후 사용자 지정 구성을 선택합니다.
  3. 데이터베이스(JDBC) 옵션 화면에서 를 선택합니다.
  4. JDBC 연결 풀 구성 화면에서 다음과 같이 설정합니다.

    Vendor : Oracle Driver : BEA's Oracle Driver(Type 4) Version 8.1.7,9.0.1,9.2.0 (다른 모든 항목을 환경에 맞게 설정하십시오.)

연결 풀 수동 설정

연결 풀을 만들 때 다음을 도메인의 config.xm에 추가합니다. (밑줄 친 부분의 값을 환경에 맞게 변경하십시오.)

<JDBCConnectionPool DriverName=weblogic.jdbc.oracle.OracleDriver" Name="testpool" Password="tiger" Properties="user=scott;portNumber=1521;SID=testdb;serverName=testserver" Targets="myserver" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:bea:oracle://jpw2k17:1521"/>

Oracle용 BEA WebLogic jDriver 사용

다음은 Oracle용 WebLogic jDriver 사용을 위한 환경 설정에 대한 설명입니다.

환경 설정

Oracle 드라이버용 BEA WebLogic jDriver을 사용하기 위해서는 WebLogic OCI 드라이버 기본 라이브러리가 필요합니다. 32비트 Windows에서는 WebLogic OCI 드라이버 기본 라이브러리가 WL_HOME\server\bin\에 설치되어 있습니다. Unix 플랫폼에서는 WebLogic OCI 드라이버 기본 라이브러리가 WL_HOME/server/lib/{OS name}/에 설치되어 있습니다.
WebLogic Server8.1에서는 9.2.0용 라이브러리가 기본 라이브러리입니다. Windows 환경에서 다른 라이브러리 버전을 참조하려면 PATH에 원하는 라이브러리 경로를 추가합니다. UNIX 환경에서 다른 라이브러리 버전을 참조하려면 LD_LIBRARY_PATH(HP-UX의 경우, SHLIB_PATH)에 원하는 라이브러리 경로를 추가합니다.

Oracle용 JDriver를 사용하려면 WebLogic OCI Driver 기본 라이브러리 설정과 함께 다음 설정이 필요합니다.

  1. Oracle 라이브러리로 경로 설정
    startWebLogic.cmd(UNIX 환경에서는 startWebLogic.sh)에 다음 설정을 추가합니다. Windows 환경에서는 PATH 환경 변수를 Oracle 설치 디렉토리 bin으로 설정합니다. set PATH=%ORACLE_HOME%\bin;%PATH% Unix 환경에서는 lib(또는 lib32)에 D_LIBRARY_PATH나 SHLIB_PATH를 추가합니다. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$LD_LIBRARY_PATH자세한 정보는 Setting Up the Environment for Using WebLogic jDriver for Oracle을 참조하십시오.
  2. Oracle 환경 변수 NLS_LANG을 지정합니다.
    NLS_LANG과 weblogic.codeset에도 항상 동일한 인코딩이 필요합니다(Oracle용 jDriver의 연결 속성). 자세한 정보는 WebLogic jDriver Advanced Features의 Codeset support를 참조하십시오. 위의 설정을 통해 WebLogic Type 4 Driver를 사용하여 WebLogic Server의 JDBC 클라이언트(JSP, Servlet 등)에서 데이터베이스로 직접 연결할 수 있습니다.
    Oracle용 WebLogic jDriver를 사용한 JDBC 클라이언트 프로그래밍에 대한 자세한 정보는 Using WebLogic jDriver for Oracle을 참조하십시오.

연결 풀 설정

Oracle용 WebLogic jDriver를 사용하여 연결 풀을 구성하려면 다음 설정을 완료합니다. 자세한 정보는 Configuring WebLogic jDriver for Oracle의 Setting Up a Connection Pool을 참조하십시오.


관리 콘솔에서 연결 풀 설정

  1. 도메인 구성
  2. 관리 콘솔에서 서비스 > JDBC > 연결 풀 탭을 사용하여 새 JDBC 연결 풀 구성을 엽니다.
  3. 데이터베이스 선택 화면에서 데이터베이스 유형을 Oracle로 설정하고 데이터베이스 드라이버를 BEA Oracle Driver (Type 2) Version8.1.7,9.0.1,9.2.0으로 설정합니다.
  4. 다음 화면에서 연결 풀의 이름과 속성을 입력합니다.
  5. 데이터베이스 연결 시험 화면에서 드라이버 구성을 시험합니다.
  6. 연결이 성공적으로 이루어지면 다음 화면에서 만든 후 배포를 실행합니다.

구성 마법사를 사용하여 도메인을 만들 때의 연결 풀 설정

  1. 구성 마법사를 시작합니다.
  2. 옵션 템플릿을 선택한 후 사용자 지정 구성을 선택합니다.
  3. 데이터베이스(JDBC) 옵션 화면에서 를 선택합니다.
  4. JDBC 연결 풀 구성 화면에서 다음과 같이 설정합니다.

Vendor : Oracle Driver : Oracle's Driver(Type 2) Version 8.1.7,9.0.1,9.2.0 (다른 모든 항목을 환경에 맞게 설정하십시오.)

연결 풀 수동 설정

연결 풀을 만들 때 다음을 도메인의 config.xm에 추가합니다. (밑줄 친 부분의 값을 환경에 맞게 변경하십시오.)

<JDBCConnectionPool DriverName=weblogic.jdbc.oci.Driver" Name="testpool" Password="tiger" Properties="user=scott;server=testdb.testserver" Targets="myserver" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:weblogic:oracle"/>

Oracle OCI 드라이버 사용

다음은 Oracle OCI 드라이버 사용을 위한 환경 설정에 대한 설명입니다.

환경 설정

Oracle OCI 드라이버를 사용하는 도메인에서는 startWebLogic.cmd(또는 startWebLogic.sh)를 다음과 같이 설정하며
%ORACLE_HOME%는 Oracle 클라이언트의 설치 디렉토리를 나타냅니다.

  1. CLASSPATH에 다음을 추가합니다.

    %ORACLE_HOME%\jdbc\lib\classes12.zip

    %ORACLE_HOME%\jdbc\lib\nls_charset12.zip

  2. PATH에 다음을 추가합니다.

    %ORACLE_HOME%

이제 Oracle OCI 드라이버를 사용하여 WebLogic Server의 JDBC 클라이언트(JSP, Servlet 등)에서 데이터베이스로 직접 연결할 수 있습니다. Oracle OCI 드라이버를 사용하는 JDBC 클라이언트 프로그래밍에 대한 자세한 정보는 Oracle 매뉴얼을 참조하십시오.

연결 풀 설정

Oracle OCI 드라이버를 사용하여 연결 풀을 구성할 때는 다음과 같이 설정합니다.

관리 콘솔에서 연결 풀 설정

  1. 도메인 구성
  2. 현재 사용중인 Oracle OCI 드라이버 버전에 맞도록 startWebLogic.cmd(또는 startWebLogic.sh)를 수정합니다.

    *CLASSPATH에 다음을 추가합니다.

    %ORACLE_HOME%\jdbc\lib\classes12.zip

    %ORACLE_HOME%\jdbc\lib\nls_charset12.zip

    *PATH에 다음을 추가합니다.

    %ORACLE_HOME%

  3. 관리 콘솔에서 서비스 > JDBC > 연결 풀 탭을 사용하여 새 JDBC 연결 풀 구성을 엽니다.
  4. 데이터베이스 선택 화면에서 데이터베이스 유형을 Oracle로 설정하고 데이터베이스 드라이버를 Oracle`s Driver (OC) Version8.1.7,9.0.1,9.2.0으로 설정합니다.
  5. 다음 화면에서 연결 풀의 이름과 속성을 입력합니다.
  6. 데이터베이스 연결 시험 화면에서 드라이버 구성을 시험합니다.

    Oracle Client 8을 사용 중인 경우에는 URL을 위와 같이 변경하십시오.

    <수정 전> jdbc:oracle:oci:@[database name].[database server name]

    <수정 후> jdbc:oracle:oci8:@[database name].[database server name]

  7. 연결이 성공적으로 이루어지면 다음 화면에서 만든 후 배포를 실행합니다.

구성 마법사를 사용하여 도메인을 만들 때의 연결 풀 설정

  • 구성 마법사를 시작합니다.
  • 옵션 템플릿을 선택한 후 사용자 지정 구성을 선택합니다.
  • 데이터베이스(JDBC) 옵션 화면에서 를 선택합니다.
  • JDBC 연결 풀 구성 화면에서 다음 설정을 합니다. Vendor : Oracle Driver : Oracle's Driver(OCI) Version 8.1.7,9.0.1,9.2.0
    (다른 모든 항목을 환경에 맞게 설정합니다.)
  • 현재 사용 중인 Oracle OCI 드라이버 버전에 맞게 startWebLogic.cmd(또는 startWebLogic.sh) 파일을 수정합니다.

    *CLASSPATH에 다음을 추가합니다.

    %ORACLE_HOME%\jdbc\lib\classes12.zip

    %ORACLE_HOME%\jdbc\lib\nls_charset12.zip

    *PATH에 다음을 추가합니다.

    %ORACLE_HOME%

Oracle Client Version 8을 사용 중인 경우에는 아래와 같이 만들어진 도메인의 config.xml 연결 설정을 업데이트합니다.

<수정전> URL="jdbc:oracle:oci:@[database name].[database server name]

<수정후> URL="jdbc:oracle:oci8:@[database name].[database server name]

연결 풀을 수동 설정할 때는

  1. 현재 사용 중인 Oracle OCI 드라이버에 맞게 연결 풀을 만들 대상 도메인의 startWebLogic.cmd(또는 startWebLogic.sh) 파일을 수정합니다.

    *CLASSPATH에 다음을 추가합니다.

    %ORACLE_HOME%\jdbc\lib\classes12.zip

    %ORACLE_HOME%\jdbc\lib\nls_charset12.zip

    *PATH에 다음을 추가합니다.

    %ORACLE_HOME%

  2. 연결 풀을 만들 대상 도메인의 config.xm에 다음을 추가합니다.

(밑줄 친 부분의 값을 환경에 맞게 변경하십시오.)

stpool" Password="tiger" Properties="user=scott" Targets="myserver" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:oci:@testdb.testserver"/>

Oracle Client 버전 8을 사용 중인 경우 아래와 같이 URL을 입력합니다.

URL="jdbc:oracle:oci8:@testdb.testserver"


Oracle Thin 드라이버 사용

WebLogic Server 8.1에는 Oracle Thin 드라이버 버전 9.2.0이 설치되어 있습니다. Oracle Thin 드라이버의 설정 방법은 다음과 같습니다.

환경 설정

WebLogic Server8.1에서는 WL_HOME\server\lib 디렉토리에 Oracle Thin 버전 9.2.0이 설치되어 있습니다. 이러한 파일은 weblogic.jar의 manifest classpath에 저장되며 서버의 classpath에 자동으로 추가됩니다. 이를 통해 Oracle Thin 드라이버를 사용하여 JSP 또는 Servlet 등의 JDBC 클라이언트에서 데이터베이스에 직접 연결할 수 있습니다.
Oracle Thin 드라이버의 다른 버전에 대한 자세한 설명은 Programming WebLogic JDBC에 나와 있는 Using Third-Party Drivers with WebLogic Server를 참조합니다.
Oracle Thin 드라이버를 사용한 JDBC 클라이언트 프로그래밍에 대한 정보는 Oracle 매뉴얼을 참조합니다.

character set support by nls_charset12.zip

Oracle Thin 드라이버는 CHAR 및 VARCHAR 유형의 US7ASCII, WE8DEC, ISO-LATIN-1, UTF-8 문자 세트를 지원합니다. 다른 문자 세트를 사용할 때는 CLASSPATH에 nls_charset12.zip을 추가합니다. nls_charset12.zip은 WL_HOME\ext\lib에 설치됩니다.
사용하는 도메인의 startWebLogic.cmd(또는 startWebLogic.sh)의 CLASSPATH에 WL_HOME\ext\jdbc\oracle\920\nls_charset12.zip을 추가합니다. 자세한 정보는 Using the Oracle Thin Driver를 참조합니다.

연결 풀 설정

Oracle Thin 드라이버를 사용하여 연결 풀을 구성할 때는 다음과 같이 설정합니다. 자세한 정보는 Programming WebLogic JDBC에 나와 있는 Configuring and Using WebLogic JDBC를 참조합니다.

관리 콘솔에서 연결 풀 설정

a) 도메인을 구성합니다.

b) 관리 콘솔에서 서비스 > JDBC > 연결 풀 탭을 사용하여 새 JDBC 연결 풀 구성을 엽니다.

c) 데이터베이스 선택 화면에서 데이터베이스 유형을 Oracle로 설정한 다음 데이터베이스 드라이버를 Oracle`s Driver (Thin)
    Version8.1.7,9.0.1,9.2.0
으로 설정합니다.

d) 다음 화면에서 연결 풀의 이름과 속성을 입력합니다.

e) 데이터베이스 연결 시험 화면에서 드라이버 구성을 시험합니다.

f) 연결이 성공적으로 이루어지면 다음 화면에서 만든 후 배포를 실행합니다.

구성 마법사를 사용하여 도메인을 만들 때의 연결 풀 설정

a) 구성 마법사를 시작합니다.

b) 옵션 템플릿을 선택한 후 사용자 지정 구성을 선택합니다.

c) 데이터베이스(JDBC) 옵션 화면에서 를 선택합니다.

d) JDBC 연결 풀 구성 화면에서 다음을 설정합니다.

Vendor : Oracle Driver : Oracle's Driver(Thin) Version 8.1.7,9.0.1,9.2.0
(다른 모든 항목을 환경에 맞게 설정합니다.)

연결 풀 수동 설정

연결 풀을 만들 때 다음을 도메인의 config.xm에 추가합니다.

(밑줄 친 부분의 값을 환경에 맞게 변경하십시오.)

testpool" Password="tiger" Properties="user=scott" Targets="myserver" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@testserver:1521:testdb/">

인코딩이 서로 다른 데이터베이스에 동시 연결할 때의 제한 사항

OCI 드라이버를 사용할 때는 NLS_LANG과 weblogic.codeset에 동일한 인코딩을 지정해야 합니다. 이 매개변수를 동일한 값으로 설정하면 사용자는 특정 NLS_LANG을 가진 클라이언트로서 Oracle에 연결되므로 Oracle 측에서 인코딩 변환이 수행됩니다