JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP Áú¹®&´äº¯DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP±âŸ TIP
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ® ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
Commons-dbcp ÃÑÁ¤¸®
GoodBug
À̹ÌÁö ½½¶óÀÌ´õ º¸±â

Commons-dbcp

 

 

I. DBCP (DataBase Connection Pool)

ÀÌÁ¦´Â µ¥ÀÌÅͺ£À̽º Ç®À» ÀÌ¿ëÇÑ Ä¿³Ø¼Ç Ç®À» »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â°ÍÀº »ó»óÁ¶Â÷ ÇÒ ¼ö ¾ø°Ô µÇ¾ú´Ù. °¢ WASÀÇ º¥´õµéÀº ¿À·¡ÀüºÎÅÍ ÀÚ»çÁ¦Ç°¿¡ ´ëÇØ ÃÖÀûÈ­µÈ Ä¿³Ø¼Ç Ç®À» ±âº»ÀûÀ¸·Î Á¦°øÀ» Çϱâ±îÁö À̸£·¶´Ù. ¶ÇÇÑ Çѽº¹ö±×ÀÇ Ä¿³Ø¼Ç Ç®¸µÀ̳ª Ç®¸ÇÀÇ Ç®µî ¿©·¯ ¿ÀÇÂµÈ Ä¿³Ø¼Ç Ç® ¼Ò½ºµéÀÌ µ¹¾Æ´Ù±â±âµµ ÇÏ¿´´Ù.

¿©±â¼­´Â Jakarta Commons¿¡¼­ ÁøÇàÇÏ°íÀÖ´Â Commons-dbcp project¿¡ ´ëÇØ ¾Ë¾Æº¸°í °£´ÜÇÑ ¿¹Á¦¸¦ ¼Ò°³Çϱâ·Î ÇÏ°Ú´Ù

 

II. ´Ù¿î·Îµå ¹× ¼³Ä¡

dbcp´Â commonsÀÇ pool°ú collectionÀ» »ç¿ëÇϱ⶧¹®¿¡ ´ÙÀ½3°¡Áö¸¦ ¸ðµÎ ¼³Ä¡ÇØ¾ß Á¤»óÀûÀ¸·Î dbcp¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Commons-dbcp http://jakarta.apache.org/site/downloads/downloads_commons-dbcp.cgi

Commons-pool http://jakarta.apache.org/site/downloads/downloads_commons-pool.cgi

Commons-collections http://jakarta.apache.org/site/downloads/downloads_commons-collections.cgi

DBCP API http://jakarta.apache.org/commons/dbcp/apidocs/index.html

 

/WEB-INF/lib/ ¿¡ ´Ù¿î¹ÞÀº 3°¡Áö *.jar¸¦ º¹»çÇϵµ·Ï ÇÑ´Ù

 

III. DBCP À¥¿¡¼­ »ç¿ëÇϱâ!

À̹ø dbcp °­ÀÇ´Â À¥¿¡¼­ »ç¿ëÇϴ°ÍÀ» ÀüÁ¦·Î ¼³¸íÇÏ°Ú½À´Ï´Ù ^^

ÅèĹÀ» »ç¿ëÇÑ´Ù¸é server.xml¿¡ dbcp¸¦ ¼³Á¤Çصµ µÇÁö¸¸ web.xml¿¡ ¼³Á¤Çϴ°ÍÀÌ Á»´õ À¯¿¬¼ºÀ» Áö´Õ´Ï´Ù

 

1) JDBC Á¤º¸ Á¤ÀÇ

web.xml¿¡ dbcp¸¦ »ç¿ëÇϱâÀ§ÇÑ jdbc Á¤º¸¸¦ Á¤ÀÇÇÕ´Ï´Ù.

   <servlet>
      <servlet-name>connectioninitialize</servlet-name>
      <servlet-class>db.ConnectionInitialize</servlet-class>
      <init-param>
         <param-name>driverClassName</param-name>
         <param-value>org.gjt.mm.mysql.Driver</param-value>
      </init-param>
      <init-param>
      <param-name>url</param-name>
      <param-value>jdbc:mysql://localhost/unicorn</param-value>
      </init-param>
      <init-param>
         <param-name>username</param-name>
         <param-value>unicorn</param-value>
      </init-param>
      <init-param>
         <param-name>password</param-name>
         <param-value>iloveyou</param-value>
      </init-param>
      <init-param>
         <param-name>defaultAutoCommit</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>defaultReadOnly</param-name>
         <param-value>false</param-value>
      </init-param>
      <init-param>
         <param-name>maxActive</param-name>
         <param-value>30</param-value>
      </init-param>
      <init-param>
         <param-name>maxIdle</param-name>
         <param-value>10</param-value>
      </init-param>
      <init-param>
         <param-name>maxWait</param-name>
         <param-value>10000</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>   
   </servlet>

 

¨ç driverClassName : »ç¿ëÇÒ jdbc driverÀÇ class name

¨è url : jdbc driverÀÇÇØ ¿¬°áÇÒ connection¿¡ ´ëÇÑ url

¨é username : connectionÀ» ¿¬°áÇÒ »ç¿ëÀÚ À̸§

¨ê password : connectionÀ» ¿¬°áÇÒ »ç¿ëÀÚ ºñ¹Ð¹øÈ£

¨ë defaultAutoCommit : Ç®¿¡ÀÇÇØ »ý¼ºµÈ Ä¿³Ø¼ÇÀÇ auto-commit »óÅÂ

¨ì defaultReadOnly : Ç®¿¡ÀÇÇØ »ý¼ºµÈ Ä¿³Ø¼ÇÀÇ read-only »óÅÂ

                             jdbc¿¡ µû¶ó Áö¿øÇÏÁö ¾ÊÀ»¼öµµ ÀÖ´Ù (¿¹ : informix)

¨í maxActive : Ä¿³Ø¼ÇÇ®ÀÇ ActiveÇÑ Ä¿³Ø¼ÇÀÇ ÃÖ´ë °¹¼ö

¨î maxIdle : Ä¿³Ø¼ÇÇ®ÀÇ idleÇÑ Ä¿³Ø¼ÇÀÇ ÃÖ´ë °¹¼ö

¨ï maxWait : Ä¿³Ø¼ÇÀÌ Ç®¿¡ ¹Ý³³µÇ±â±îÁö ±â´Ù¸®´Â ÃÖ´ë ½Ã°£ (millisecond)

 

2) JDBC Á¤º¸ ·Îµù ¹× ÃʱâÈ­

ÀÌ Å¬·¡½º´Â web.xml¿¡ ÀÇÇØ ¼­ºí¸´ ÄÁÅ×À̳ʰ¡ ±¸µ¿µÉ ¶§ µü Çѹø ½ÇÇàµË´Ï´Ù.

db.ConnectionInitialize.java

package db;

 

import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.GenericObjectPool;
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;

 

public class ConnectionInitialize extends HttpServlet {
 
 public void init() throws ServletException {
 
    String driverClassName = null;
    String url = null;
    String username = null;
    String password = null;
    boolean defaultAutoCommit = true;
    boolean defaultReadOnly = false;
    int maxActive = 0;
    int maxIdle = 0;
    long maxWait = 0;

 

    // web.xml¿¡¼­ Á¤ÀÇÇÑ ÆĶó¹ÌÅÍ À̸§À» enumeration¿¡ ´ã½À´Ï´Ù.

    Enumeration names = getServletConfig().getInitParameterNames();
       do {
          if(!names.hasMoreElements())
             break;

 

          // web.xml¿¡ Á¤ÀÇÇÑ ÆĶó¹ÌÅÍ°ªÀ» °¡Á®¿É´Ï´Ù.

          String name = (String)names.nextElement();
          String value = getServletConfig().getInitParameter(name).trim();

          System.out.println(name+" : "+value);

 

          if (name.startsWith("driverClassName"))
             driverClassName = value;
          else if (name.startsWith("url"))
             url = value;
          else if (name.startsWith("username"))
             username = value;
          else if (name.startsWith("password"))
             password = value;
          else if (name.startsWith("defaultAutoCommit"))
             defaultAutoCommit = "true".equals(value);
          else if (name.startsWith("defaultReadOnly"))
             defaultReadOnly = "true".equals(value);
          else if (name.startsWith("maxActive"))
             maxActive = Integer.parseInt(value);
          else if (name.startsWith("maxIdle"))
             maxIdle = Integer.parseInt(value);
          else if (name.startsWith("maxWait"))
             maxWait = Long.parseLong(value);

        } while(true);
       
        try {

           // jdbc driver ¹× ±âŸ Á¤ÀǸ¦ ¼³Á¤ÇÕ´Ï´Ù.
           setupDriver(driverClassName,

                           url,

                           username,

                           password,

                           defaultAutoCommit,

                           defaultReadOnly,

                           maxActive,

                           maxIdle,

                           maxWait);


           System.out.println("Connection initialize success");
        } catch (Exception exception) {
           System.out.println("Connection initialize fail!");
           exception.printStackTrace();
      }
 }
 
 public void setupDriver(String driverClassName,
       String url,
       String username,
       String password,
       boolean defaultAutoCommit,
       boolean defaultReadOnly,
       int maxActive,
       int maxIdle,
       long maxWait) throws Exception {


       try {

            // jdbc class¸¦ ·ÎµùÇÕ´Ï´Ù.
            Class.forName(driverClassName);
        } catch (ClassNotFoundException classnotfoundexception) {
            System.out.println(driverClassName+" is not found");
            classnotfoundexception.printStackTrace();
            throw classnotfoundexception;
        }
       

        // Ä¿³Ø¼Ç Ç®·Î »ç¿ëÇÒ commons-collectionsÀÇ genericOjbectPoolÀ» »ý¼ºÇÕ´Ï´Ù.
        GenericObjectPool connectionPool = new GenericObjectPool(null);
        connectionPool.setMaxActive(maxActive);
        connectionPool.setMaxIdle(maxIdle);
        connectionPool.setMaxWait(maxWait);
       

        // Ç®ÀÌ Ä¿³Ø¼ÇÀ» »ý¼ºÇϴµ¥ »ç¿ëÇÏ´Â DriverManagerConnectionFactory¸¦ »ý¼ºÇÕ´Ï´Ù.
        ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(url, username, password);
       

        // ConnectionFactoryÀÇ ·¡ÆÛ Å¬·¡½ºÀÎ PoolableConnectionFactory¸¦ »ý¼ºÇÑ´Ù
        PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, defaultReadOnly, defaultAutoCommit);
       

        // ¸¶Áö¸·À¸·Î PoolingDriver ÀÚ½ÅÀ» ·ÎµùÇÑ´Ù
        Class.forName("org.apache.commons.dbcp.PoolingDriver");

        PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");

        // ±×¸®°í Ç®¿¡ µî·ÏÇÑ´Ù. Ç®À̸§À» "unicorn"À̶ó°í ÁöÁ¤ÇÏ¿´´Ù        
        driver.registerPool("unicorn",connectionPool);       
    }
}

 

 

3) Ä¿³Ø¼Ç ·¡ÆÛ Å¬·¡½º

µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼ÇÀ» °ü¸®ÇÏ´Â Interface·Î ´ÙÀ½ 4°¡Áö ÇÔ¼ö¸¦ Á¤ÀÇÇÏ¿´½À´Ï´Ù.

db.ConnectionContext.java

package db;

 

public interface ConnectionContext {
   public java.sql.Connection getConnection();
   public void rollback();
   public void commit();
   public void release();
}

 

ConectionContext¸¦ ±¸ÇöÇÑ Ä¿³Ø¼Ç Ŭ·¡½º

db.ConnectionResource.java

package db;

import java.sql.Connection;
import java.sql.DriverManager;

public class ConnectionResource implements ConnectionContext {
   private Connection connection = null;
   private boolean transaction = false;

 

   public ConnectionResource() throws Exception {
      init(false); 
   }
   
    public ConnectionResource(boolean transaction) throws Exception {
       init(transaction);
    }
   
    public void init(boolean transaction) throws Exception {
       this.transaction = transaction;
       connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:unicorn");

       if (connection == null) throw new Exception("fail to get connection");

      if (transaction) connection.setAutoCommit(false);

    }
     
    public Connection getConnection() {  
       return connection;
    }

 

    public void rollback() {
       if (transaction) {
          if (connection != null) try { connection.rollback(); } catch (Exception e) {}
      }
   }

 

   public void commit() {
      if (transaction) {
         if (connection != null) try { connection.commit(); } catch (Exception e) {}
      }
   }

 

   public void release() {
      if (connection != null) {
         if (transaction) {
            try { connection.setAutoCommit(true); } catch (Exception e) {}
         }
         try { connection.close(); } catch (Exception e) {}
      }
   }
}

 

4) Å×½ºÆ® JSP

jsp¿¡¼­ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ¸é µË´Ï´Ù.

<%@ page contentType="text/html;charset=EUC_KR" %>
<%@ page import="java.sql.*,db.*" %>

 

<%

   ConnectionContext connectionContext = new ConnectionResource();
   Connection connection = null;

   try {
      connection = connectionContext.getConnection();

   } catch (Exception exception) {
       exception.printStackTrace();
   } finally {
       if (connection != null) try { connectionContext.release(); } catch (Exception exception) {}
   }

%>

°ü·Ã ÆÄÀϵéÀ» ÷ºÎÇÕ´Ï´Ù ^^&

 

IV. Struts¿Í DBCP

¸¸¾à Struts¿Í ÇÔ²² »ç¿ëÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÇϼ¼¿ä. ÇöÀç UnicornÀÌ ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î µÇ¾îÀÖ½À´Ï´Ù.

1) struts-config.xml ¿¡ DBCP Á¤º¸¸¦ Á¤ÀÇÇÕ´Ï´Ù.

 <data-sources>
  <data-source key="mysql" type="org.apache.commons.dbcp.BasicDataSource">
   <set-property property="defaultAutoCommit" value="true"/>
   <set-property property="defaultReadOnly" value="false"/>
   <set-property property="description" value="Tomcat Data Source"/>
   <set-property property="driverClassName" value="org.gjt.mm.mysql.Driver"/>
   <set-property property="maxActive" value="30"/>
   <set-property property="maxIdle" value="10"/>
   <set-property property="maxWait" value="10000"/>
   <set-property property="username" value="unicorn"/>
   <set-property property="password" value="iloveyou"/>
   <set-property property="url" value="jdbc:mysql://localhost/unicorn"/>
  </data-source>
 </data-sources>

 

2) Action classs¿¡¼­ ´ÙÀ½°ú °°ÀÌ Ä¿³Ø¼ÇÀ» ¾ò¾î¿Ã ¼ö ÀÖ½À´Ï´Ù.

Connection connection = getDataSource(request, "mysql").getConnection();

ÀÌ getDataSource() ÇÔ¼ö´Â org.apache.struts.action.Action Ŭ·¡½º¿¡ ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ½À´Ï´Ù.

protected DataSource getDataSource(HttpServletRequest request) {
    return getDataSource(request, "org.apache.struts.action.DATA_SOURCE");
}

protected DataSource getDataSource(HttpServletRequest request, String key) {
    ServletContext context = getServlet().getServletContext();
    ModuleConfig moduleConfig = ModuleUtils.getInstance().getModuleConfig(request, context);
    return (DataSource)context.getAttribute(key + moduleConfig.getPrefix());
}

 

3) Struts¿¡¼­ Æ®·£Àè¼Ç °ü¸®¸¦ À§ÇÑ ÄÚµùÀ¸·Î´Â unicornÀÇ ¼Ò½º¿¡ Ãæ½ÇÈ÷ ±¸ÇöµÇ¾î ÀÖ½À´Ï´Ù.

¸¶Âù°¡Áö·Î InterfaceÀÎ ConnectionContext¿Í À̸¦ ±¸ÇöÇÑ ConnectionResource¸¦ »ç¿ëÇÏ¿© Æ®·£Àè¼Ç °ü¸®¸¦ ÇÏ¿´½À´Ï´Ù. ÀÌ ¿¹Á¦´Â unicorn ¼Ò½º¸¦ ÂüÁ¶Çϼ¼¿ä ^^

 

V. ÅèĹ¿¡¼­ÀÇ DBCP »ç¿ë

1) DBCP¿¡ ´ëÇÑ Á¤º¸¸¦ server.xml¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

<Context path="/unicorn" docBase="unicorn" debug="0"
                 reloadable="true" crossContext="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="localhost_ktng_log." suffix=".txt"
              timestamp="true"/>


    <Resource name="jdbc/unicorn" auth="Container"

                    type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/unicorn">
       <parameter>
         <name>factory</name>
         <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
       </parameter>
       <parameter>
         <name>username</name>
         <value>unicorn</value>
       </parameter>
       <parameter>
         <name>password</name>
         <value>iloveyou</value>
       </parameter>
       <parameter>
         <name>driverClassName</name>
         <value>org.gjt.mm.mysql.Driver</value>
       </parameter>
       <parameter>
         <name>url</name>
         <value>jdbc:mysql://localhost/unicorn</value>
       </parameter>
       <parameter>
         <name>maxActive</name>
         <value>30</value>
       </parameter>
       <parameter>
         <name>maxIdle</name>
         <value>10</value>
       </parameter>
       <parameter>
         <name>maxWait</name>
         <value>10000</value>
       </parameter>
     </ResourceParams>

 

2) web.xml¿¡ JNDI ¸®¼Ò½º¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ´ÙÀ½À» Ãß°¡ÇÕ´Ï´Ù.

<resource-ref>
   <description>unicorn db</description>
   <res-ref-name>jdbc/unicorn</res-ref-name> 
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

3) ½ÇÁ¦ ¼Ò½º¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ DataSource¸¦ »ç¿ëÇÕ´Ï´Ù.

InitialContext context = new InitialContext();

DataSource dataSource = (DataSource) context.lookup("java:/comp/env/jdbc/unicorn");

Connection connection = dataSource.getConnection();

°£´ÜÇÏÁÕ?

 

=============================================

º»¹®¼­´Â ÀÚÀ¯·Ó°Ô ¹èÆ÷/º¹»ç ÇÒ¼ö ÀÖÁö¸¸

À̹®¼­ÀÇ ÀúÀÚ¿¡ ´ëÇÑ ¾ð±ÞÀ» »èÁ¦ÇÏ½Ã¸é ¾ÈµË´Ï´Ù

ÀúÀÚ : GoodBug (unicorn@jakartaproject.com)

ÃÖÃÊ : http://www.jakartaproject.com 

=============================================

2008-11-10 12:04:28
222.233.252.***

 

ÁÁÀº»ý°¢ ^^

÷ºÎÆÄÀÏ (ÃÑ 5°³)
  1. ConnectionResource.java 1.36 KB (252 ´Ù¿î·Îµå)
  2. test.jsp 433 Bytes (235 ´Ù¿î·Îµå)
  3. web.xml 1.65 KB (227 ´Ù¿î·Îµå)
  4. ConnectionInitialize.java 3.47 KB (272 ´Ù¿î·Îµå)
  5. ConnectionContext.java 175 Bytes (237 ´Ù¿î·Îµå)
0Á¡ (0¸í)
µ¡±Û 4°³ | ÅÂ±× 4°³ | °ü·Ã±Ûº¸±â
ű×ÀÔ·Â
½±Ç¥(,)±¸ºÐÀ¸·Î Çѹø¿¡ ¿©·¯ ű׸¦ ÀÔ·ÂÇÒ¼ö ÀÖ½À´Ï´Ù
commons (16) upload (3) dbcp (2) 52 (1)
¸¶¸°º¸ÀÌ
(0) (0)
À¥±â¹ÝÀÌ ¾Æ´Ñ ¾îÇø®ÄÉÀ̼ǿ¡¼­ »ç¿ëÇÒ·Á¸é ¾î¶»°Ô ÇؾßÇϳª¿ä..
210.122.61.*** 2005-10-17 11:12:23
GoodBug
(0) (0)
¾îÇø®ÄÉÀ̼ǿ¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýµµ µ¿ÀÏÇÕ´Ï´Ù ´Ü web.xml¿¡ ±âº» Á¤º¸¸¦ ÀÔ·ÂÇÏ´Â ´ë½Å properties³ª ´Ù¸¥ xmlÆÄÀÏÀ» ¸¸µé¾î ConnectionInitialize.java¿¡¼­ ±âº» Á¤º¸¸¦ ÀÐÀ¸¸é µÉ°Í °°±º¿ä ±×¸®°í mainÇÔ¼ö¿¡¼­ À̸¦ óÀ½ ÃʱâÈ­ÇØÁÖ¼¼¿ä
220.70.88.*** 2005-10-17 22:50:29
¸¶¸°º¸ÀÌ
(0) (0)
´äº¯°¨»çÇÕ´Ï´Ù. mysql4.1 ¿¡¼­ mysql-connector-java-3.1.7-bin.jar ¸¦ °¡Áö°í Çغôµ¥ Ä¿³Ø¼ÇÀÌ ÀÏÁ¤½Ã°£ ÈÄ ²÷±â´Â°Å °°³×¿ä. Á»´õ ¿¬±¸¸¦ ÇغÁ¾ß°Ú½À´Ï´Ù. ÁÁÀº ÀÚ·á Á¤¸®ÇØÁּż­ ³Ñ À¯ÀÍÇÏ³×¿ä ¼ö°í°¡¸¹½À´Ï´Ù.^^
210.122.61.*** 2005-10-19 11:46:46
¼Õ´Ô
(0) (0)
Ä¿³Ø¼ÇÀÌ ÀÏÁ¤½Ã°£ÈÄ ²÷¾îÁö´Â°Ç autoreconnect=true ÇØÁÖ¸é ¾ø¾îÁö´Â°Í°°´õ±º¿ä
211.169.225.*** 2006-01-25 15:13:32
À̸§ ºñ¹Ð¹øÈ£
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ®
ÀÚÄ«¸£Å¸ ÇÁ·ÎÁ§Æ® ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
! ¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ÀÏÀÚ Á¶È¸
Hierarchy of the Apache Software Foundation GoodBug 2005-10-14 10,814
Jakarta Project °­Á °Ô½ÃÆÇÀÔ´Ï´Ù 8 GoodBug 2005-04-03 11,701
44 Log4J log4j¿¡¼­ e.printStackTrace() ¸Þ½ÃÁö¸¦ log¿¡ ³²±â´Â ¹æ¹ý 1 kaiser 2008-10-22 17,613
43 DBUtils DBUtils¿¡¼­ Clob »ç¿ëÇϱâ 3 1 GoodBug 2007-08-28 10,633
42 Spring Spring ¼³Á¤ ÆÄÀÏ ·Îµù 1 GoodBug 2007-07-16 11,317
41 POI POIÀÇ HSLF¸¦ ÀÌ¿ëÇÏ¿© PowerPoint ¹®¼­¸¦ ÀоÀÚ 2 GoodBug 2007-05-28 14,910
40 POI POIÀÇ HWPF¸¦ ÀÌ¿ëÇÏ¿© MS WORD¹®¼­¸¦ ÀоÀÚ 2 GoodBug 2007-05-28 16,839
39 Validator Validator ¼Ó¼ºµé 1 GoodBug 2007-05-11 10,404
38 dd Commons-Fileupload 1.2 1 2 GoodBug 2007-04-23 15,345
37 Apache Apache2 + Tomcat5.5 + mod_jk 4 ¹ÙÀÌ·¯½ºô¸国 2007-01-29 11,066
36 DBUtils DBUtils¿¡¼­ number ŸÀÔÀÇ Ä÷³ÀÌ intÇüÀ¸·Î ¾È³Ñ¾î¿Ã¶§.. 3 1 GoodBug 2006-06-28 10,755
35 ÈìÈì À§ÇèÇÑ static Logger Çʵå... 2 1 ¼­¿¬¾Æºü 2006-03-16 10,113
34 Installing Tomcat with commons-daemon (jsvc) GoodBug 2006-01-08 9,067
33 commons Commons DbUtils ¸î°¡Áö ¿¹Á¦ 3 2 GoodBug 2005-11-17 15,221
32 commons Jakarta Commons Net ¿¡¼­ FTP »ç¿ë½Ã ¸ñ·ÏÀÌ ¾Èº¸ÀÏ °æ¿ì 2 GoodBug 2005-11-15 21,776
31 listFiles() ¿¡¼­ null À» ¹Ýȯ ÃßÀû.. ½Å¸¸µÎ 2008-11-11 11,866
30 commons ¸ñ·ÏÀÌ ¾Èº¸ÀÏ °æ¿ì ÇØ°á±â Iź 1 2 GoodBug 2005-12-23 15,932
29 POI POI·Î ¿¢¼¿ÆÄÀÏ ÀÐÀ»¶§, Invalid header signature ¿¡·¯ 1 GoodBug 2005-11-12 16,540
28 log4j log4j, JSP¿¡¼­ ¿øÇÏ´Â Appender °ñ¶ó¾²±â 1 GoodBug 2005-11-07 13,894
27 commons Commons-Email~ 7 2 GoodBug 2005-10-13 17,860
copyright 2005-2024 by Unicorn