제18장 JavaEE 환경에서 JAXR Connection을 얻는 방법

내용 목차

18.1. 개요
18.2. JEUS 서버에 JAXR Resource를 등록하는 방법
18.3. JavaEE JAXR 클라이언트가 JNDI를 사용하는 방법

본 절에서는 JavaEE JAXR 클라이언트가 JEUS 6 서버 환경에서 JNDI를 사용하여 JAXR Connection을 얻는 방법을 설명한다.

18.1. 개요

JEUS 6에서는 JavaEE JAXR 클라이언트가 JNDI로부터 JAXR Connection을 얻어올 수 있는 환경을 제공한다. JAXR 클라이언트가 JAXR Connection을 얻기 위하여 JAXR Connection Factory를 lookup하는 방법에 따라 JNDI를 사용하는 방법과 ConnectionFactory 클래스의 newInstance static method를 사용하는 방법이 있다.

18.2. JEUS 서버에 JAXR Resource를 등록하는 방법

JEUS 서버에서 JNDI를 사용하여 JAXR ConnectionFactory를 lookup하기 위해서는 JEUSMain.xml에 <jaxr-source>를 다음 예제와 같이 리소스로 등록해야 한다.

<jeus-system>
    . . .
    <resource>
    . . .
        <jaxr-source>
            <jaxr-entry>
                <export-name>XML_REGISTRY</export-name>
                <query-manager-URL>
                    http://localhost:8088/uddi/inquiry
                </query-manager-URL>
                <lifeCycle-manager-URL>
                    http://localhost:8088/uddi/publish
                </lifeCycle-manager-URL>
            </jaxr-entry>
        </jaxr-source>
    </resource>
    . . .
</jeus-system>

여기서, <jaxr-source> / <jaxr-entry> / <query-manager-URL>은 Target registry provider의 query manager service를 위한 URL이고, <jaxr-source> / <jaxr-entry> / <lifeCycle-manager-URL>은 Target registry provider의 life cycle manager service를 위한 URL이다.

18.3. JavaEE JAXR 클라이언트가 JNDI를 사용하는 방법

“18.2. JEUS 서버에 JAXR Resource를 등록하는 방법”과 같이 JEUS 서버에 등록된 JAXR 리소스를 사용하는 JavaEE JAXR 클라이언트는 표준 Deployment Description 파일(web.xml, ejb-jar.xml)에 <resource-ref>를 다음 예제와 같이 등록한다.

<resource-ref>
    <res-ref-name>jaxr/UddiRegistry</res-ref-name>
    <res-type>javax.xml.registry.ConnectionFactory</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

여기서, <resource-ref>/<res-ref-name>는 JavaEE JAXR 클라이언트가 컨텍스트로부터 JAXR ConnectionFactory를 lookup하기 위한 JNDI 이름이다.

다음으로 표준 Deployment Description 파일에서 등록된 <resource-ref>와 JEUS 서버의 JEUSMain.xml에 등록된 <jaxr-source>를 연결하기 위하여 JEUS Deployment Description 파일(jeus-web-dd.xml, jeus-ejb-dd.xml)에 <res-ref>를 다음 예제와 같이 등록한다.

<res-ref>
    <jndi-info>
        <ref-name>jaxr/UddiRegistry</ref-name>
        <export-name>XML_REGISTRY</export-name>
    </jndi-info>
</res-ref>

여기서, <res-ref> / <jndi-info> / <ref-name>은 표준 Deployment Description 파일의 <resource-ref> / <res-ref-name>에 상응하고 <res-ref> / <jndi-info> / <export-name>은 JEUSMain.xml의 <resource> / <jaxr-source> / <jaxr-entry> / <export-name>에 상응한다.

이렇게 등록된 JAXR 리소스는 다음과 같은 JavaEE JAXR 클라이언트에서 lookup되어 JAXR Connection를 얻을 수 있다.

InitialContext context = new InitialContext();
ConnectionFactory factory =
    context.lookup("java:comp/env/jaxr/UddiRegistry");
Connection factory = factory.createConnection();