나의 마음을 ctrl+c,너의 가슴에 ctrl+v

lib 추가
commons-collections-2.1.1.jar
commons-dbcp-1.2.2.jar
commons-pool-1.3.jar

Server >> Apache Tomcat v.6.0-config
server.xml

<?xml version="1.0" encoding="UTF-8"?>
  <Server port="8005" shutdown="SHUTDOWN">
  <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
  <Listener className="org.apache.catalina.core.JasperListener"/>
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>

  <!-- Global JNDI resources Documentation at /docs/jndi-resources-howto.html -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

 <!-- ##### JNDI Modify point 1 #################### -->
    <Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" maxActive="20" maxIdle="10" maxWait="-1" name="comp/env" password="take1" type="javax.sql.DataSource" url="jdbc:oracle:thin:@10.10.10.10:1521:ORCL" username="take2"/>
 <!-- #################### JNDI Modify point 1 ##### -->

  </GlobalNamingResources>

  <Service name="Catalina">
    <Connector connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443" URLEncoding="euc-kr"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
    <Engine defaultHost="localhost" name="Catalina">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
    <Context docBase="inno" path="/" reloadable="true" source="org.eclipse.jst.j2ee.server:inno"/></Context>
      </Host>
    </Engine>
  </Service>
</Server>


context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!--
         Was DataSource 명은 name attribute 값과 일치하고,
         server.xml 의 GlobalNamingResources Resource name 은 ResourceLink global 과 일치해야함
    -->  
    <ResourceLink name="comp/env" global="comp/env" type="javax.sql.DataSource" /> 
</Context> 


test.jsp

<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.sql.*" %><%
/**
 * JNDI 연결확인 테스트 파일입니다.
 * @author : gggl.ko
 */
String jndi = (request.getParameter("jndi") == null ? "java:comp/env/comp/env" : request.getParameter("jndi"));
Connection conn = null;

try {

    javax.naming.Context context = new javax.naming.InitialContext();
    System.out.println("[접속테스트] JNDI 명 = " + jndi);
    javax.sql.DataSource ds = (javax.sql.DataSource) context.lookup(jndi);
    conn = ds.getConnection();

} catch(Exception e) {
    System.out.println(e);
    out.println(e.getLocalizedMessage());
    return;
}

* Tomcat 의 경우는 접두어로 java:comp/env/ 를 붙여줘야 한다. 예) java:comp/env/comp/env

 

Server - Modules Tab 에서 아래와 같이 수정하면 개선된다. (Edit -> Path 를 빈값으로)

eclipse 로 프로젝트 Run on Server 시.
Cannot create a server using the selected type
메시지와 함께 server type 선택이 불가능한 경우가 있다.

이 경우, workspace setting 파일 중, 아래 두 파일을 삭제 후, eclipse 를 재시작하면 해결이 된다. (Tomcat 의 경우)

D:\work\projects\test\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings
1. org.eclipse.jst.server.tomcat.core.prefs
2. org.eclipse.wst.server.core.prefs

CMD Copy string
CD D:\work\projects\test
DEL workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jst.server.tomcat.core.prefs
DEL workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.wst.server.core.prefs

참고 image capture