리눅스 심볼릭 링크처럼  웹로직에서 가상 디렉토리를 설정해야 할 때 


weblogic - virtual directory mapping 을 이용하여 


weblogic.xml 에 설정하는 방법 입니다.



가상 디렉토리를 설정하고자 하는 url 


http://xxx.xxx.xxx.xxx:7001/Margo/files/bori/cat.jpg

http://xxx.xxx.xxx.xxx:7001/Bori/files/margo/cat.jpg


2개 어플리케이션 context : Margo, Bori 


두개의 어플리케이션에서 공통으로 참조하고, 파일생성 및 삭제를 해야하는 경우 


참조대상 로컬 패스 - c:/webapps/files


프로젝트 Margo 의 weblogic.xml - 어플리케이션마다 WEB-INF 폴더 아래에 위치


<?xml version='1.0' encoding='UTF-8'?>

<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">


<virtual-directory-mapping>

<local-path>C:\webapps</local-path>

<url-pattern>/files/*</url-pattern>

</virtual-directory-mapping>


<context-root>/Margo</context-root>

</weblogic-web-app>




프로젝트 Bori 의 weblogic.xml - 어플리케이션마다 WEB-INF 폴더 아래에 위치


<?xml version='1.0' encoding='UTF-8'?>

<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">


<virtual-directory-mapping>

<local-path>C:\webapps</local-path>

<url-pattern>/files/*</url-pattern>

</virtual-directory-mapping>


<context-root>/Bori</context-root>

</weblogic-web-app>





이렇게 하면 http://xxx.xxx.xxx.xxx:7001/Margo/files/bori/cat.jpg


라고 호출하게되면, c:/webapps/files/bori/cat.jpg 를 참조하게 됩니다.


리눅스 심볼릭 링크처럼 대체하는게 아니고 


지정해준 로컬패스에 이어서 붙게 됩니다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST



DB 에서 자료 긁어올 때, 매핑시킬 자바빈 변수명과, 디비의 컬럼명이 다른경우가 종종 있다.

이럴때는 resulMap 을 이용하여 정의해주면 된다. 

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

<sqlMap>
<!-- Struts_BBS.ItemBean 클래스를 alias 속성을 줘서 artcle 이라는 이름으로 쓰겠다고 정의 -->
<typeAlias alias="article" type="Struts_BBS.ItemBean"/>
<resultMap id="getContent" class="article">                                                                                     바빈


    <result property="article_num" column="article_num"/>

<result property="id" column="id"/>

<result property="title" column="title"/>
<result property="body" column="body"/>


<result property="password" column="password"/>
<result property="count" column="hit"/>
<result property="depth" column="depth"/>
<result property="fileName" column="fileName"/>
<result property="write_date" column="write_date"/>
</resultMap>
 
</sqlMap>

컬럼명은 "hit" 이고, 자바빈의 변수명은 "count" 이다.



그렇기 때문에 그냥 클래스를 지정하고 resultClass="article" 이라고 해버리면 

자바빈의 count 변수에 hit 이 당연히 매핑되지 않고, 기본값인 '0' 이 들어간다.


그렇기 때문에 저런식으로 디비컬럼명과, 자바빈 변수명을 매핑시켜주는 작업을 해주면 

편하다.

resultMap 속성에  위에서 지정한 resultMap 아이디를 쓰면 그놈이 리절트값이 된다.

<select id="Allarticles" parameterClass="int" resultMap="getContent">

<include refid="select-all-index"/>

WHERE rnum BETWEEN #index#+1 AND #index# + 10

 

</select>





YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST