database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 660 게시물 읽기
No. 660
Q.java 컴파일시 에러..
작성자
테스터
작성일
2007-10-31 13:48
조회수
4,403

pool방식을 사용하여 연결했습니다.

jsp파일에서는 연결이 잘 되는데요

자바 컴파일 할려고 하니까 에러가 나네요..

 

톰켓 사용중입니다.

 

<에러 내용입니다>

MemberManager.java:22: unreported exception javax.naming.NamingException; must be caught or declared to be thrown

        Context initContext = new InitialContext();

                              ^

MemberManager.java:23: unreported exception javax.naming.NamingException; must be caught or declared to be thrown

        DataSource ds = (DataSource) initContext.lookup(\"java:comp/env/jdbc/CUBRIDDS\");

 

 

<자바 소스입니다>

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.sql.*;

import javax.naming.*;

 

public class MemberManager {

 

    private static MemberManager instance = new MemberManager();

 

    public static MemberManager getInstance() {

        return instance;

    }

 

    private MemberManager() {

    }

 

    private Connection getConnection() throws SQLException {

        Context initContext = new InitialContext();

        DataSourceds = (DataSource) initContext.lookup(\"java:comp/env/jdbc/CUBRIDDS\");

        return ds.getConnection();

    }

 

....

 

 

<환경파일 셋팅한 값입니다>

-- conf/server.xml

  <GlobalNamingResources>

 

    <!-- Test entry for demonstration purposes -->

    <Environment name=\"simpleValue\" type=\"java.lang.Integer\" value=\"30\"/>

 

    <!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users -->

    <Resource name=\"UserDatabase\" auth=\"Container\"

              type=\"org.apache.catalina.UserDatabase\"

       description=\"User database that can be updated and saved\"

           factory=\"org.apache.catalina.users.MemoryUserDatabaseFactory\"

          pathname=\"conf/tomcat-users.xml\" />

 

*********추가부분******************

    <Resource name=\"jdbc/CUBRIDDS\"

              auth=\"Container\"

              type=\"javax.sql.DataSource\"

              driverClassName=\"cubrid.jdbc.driver.CUBRIDDriver\"

              url=\"jdbc:cubrid:localhost:33000:jsp_test:::\"

              username=\"test\" password=\"test\"

              maxActive=\"10\"

              maxIdle=\"10\"

              maxWait=\"-1\"

              removeAbandoned=\"true\"

              removeAbandonedTimeout=\"60\"

              logAbandoned=\"true\"/>

************************************

 

  </GlobalNamingResources>

 

 

 

-- conf/context.xml

<Context reloadable=\"true\" >

 

    <!-- Default set of monitored resources -->

    <WatchedResource>WEB-INF/web.xml</WatchedResource>

 

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->

    <!--

    <Manager pathname=\"\" />

    -->

    <ResourceLink name=\"jdbc/CUBRIDDS\" global=\"jdbc/CUBRIDDS\" type=\"javax.sql.DataSource\" />

 

</Context>

 

 

 

-- 톰켓 Root/WEB_INF/web.xml

**** 추가 ****

  <resource-ref>

    <description>DB Connection</description>

    <res-ref-name>jdbc/CUBRIDDS</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

  </resource-ref>

 

 

 

-- 그외..

혹시나 싶어서 etc/profile의 classpath쪽에 cubrid_jdbc.jar파일 연결했습니다.

 

이 글에 대한 댓글이 총 1건 있습니다.

아래 에러 내용은 Context, DataSourc 클래스를 사용하려면 NamingException 처리를 해주어야 한다는 것입니다.

따라서 private Connection getConnection() throws SQLException 을 NamingException까지 포함한 Exception을 사용하여

private Connection getConnection() throws Exception 로 수정하거나

private Connection getConnection() throws SQLException {

 

        Context initContext = null;

        DataSource ds = null;

    try{

        initContext = new InitialContext();

        ds = (DataSource) initContext.lookup(\"java:comp/env/jdbc/CUBRIDDS\");

    }catch(NamingException ne){

        System.out.println(ne);

    }

        return ds.getConnection();

    }

와 같이 try{}catch(){}문을 사용하여 Exception 처리를 해 주셔야 합니다.

 

 

>pool방식을 사용하여 연결했습니다.

>jsp파일에서는 연결이 잘 되는데요

>자바 컴파일 할려고 하니까 에러가 나네요..

>

>톰켓 사용중입니다.

>

><에러 내용입니다>

>MemberManager.java:22: unreported exception javax.naming.NamingException; must be caught or declared to be thrown

>        Context initContext = new InitialContext();

>                              ^

>MemberManager.java:23: unreported exception javax.naming.NamingException; must be caught or declared to be thrown

>        DataSource ds = (DataSource) initContext.lookup(\"java:comp/env/jdbc/CUBRIDDS\");

>

>

><자바 소스입니다>

>import java.sql.Connection;

>import java.sql.PreparedStatement;

>import java.sql.ResultSet;

>import java.sql.SQLException;

>import javax.sql.*;

>import javax.naming.*;

>

>public class MemberManager {

>

>    private static MemberManager instance = new MemberManager();

>

>    public static MemberManager getInstance() {

>        return instance;

>    }

>

>    private MemberManager() {

>    }

>

>    private Connection getConnection() throws SQLException {

>        Context initContext = new InitialContext();

>        DataSourceds = (DataSource) initContext.lookup(\"java:comp/env/jdbc/CUBRIDDS\");

>        return ds.getConnection();

>    }

>

>....

>

>

><환경파일 셋팅한 값입니다>

>-- conf/server.xml

>  <GlobalNamingResources>

>

>    <!-- Test entry for demonstration purposes -->

>    <Environment name=\"simpleValue\" type=\"java.lang.Integer\" value=\"30\"/>

>

>    <!-- Editable user database that can also be used by

>         UserDatabaseRealm to authenticate users -->

>    <Resource name=\"UserDatabase\" auth=\"Container\"

>              type=\"org.apache.catalina.UserDatabase\"

>       description=\"User database that can be updated and saved\"

>           factory=\"org.apache.catalina.users.MemoryUserDatabaseFactory\"

>          pathname=\"conf/tomcat-users.xml\" />

>

>*********추가부분******************

>    <Resource name=\"jdbc/CUBRIDDS\"

>              auth=\"Container\"

>              type=\"javax.sql.DataSource\"

>              driverClassName=\"cubrid.jdbc.driver.CUBRIDDriver\"

>              url=\"jdbc:cubrid:localhost:33000:jsp_test:::\"

>              username=\"test\" password=\"test\"

>              maxActive=\"10\"

>              maxIdle=\"10\"

>              maxWait=\"-1\"

>              removeAbandoned=\"true\"

>              removeAbandonedTimeout=\"60\"

>              logAbandoned=\"true\"/>

>************************************

>

>  </GlobalNamingResources>

>

>

>

>-- conf/context.xml

><Context reloadable=\"true\" >

>

>    <!-- Default set of monitored resources -->

>    <WatchedResource>WEB-INF/web.xml</WatchedResource>

>

>    <!-- Uncomment this to disable session persistence across Tomcat restarts -->

>    <!--

>    <Manager pathname=\"\" />

>    -->

>    <ResourceLink name=\"jdbc/CUBRIDDS\" global=\"jdbc/CUBRIDDS\" type=\"javax.sql.DataSource\" />

>

></Context>

>

>

>

>-- 톰켓 Root/WEB_INF/web.xml

>**** 추가 ****

>  <resource-ref>

>    <description>DB Connection</description>

>    <res-ref-name>jdbc/CUBRIDDS</res-ref-name>

>    <res-type>javax.sql.DataSource</res-type>

>    <res-auth>Container</res-auth>

>  </resource-ref>

>

>

>

>-- 그외..

>혹시나 싶어서 etc/profile의 classpath쪽에 cubrid_jdbc.jar파일 연결했습니다.

 

손승일님이 2007-10-31 15:13에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
663Q.숫자로 시작하는 테이블명 관련 [1]
gilbird
2007-10-31
3840
662Q.큐브리드 매니저 테이블 액세스 오류 [1]
gilbird
2007-10-31
3932
661Q.OleDbCommand 를 사용하는데 다음 같은 에러가 발생합니다. [1]
고상주
2007-10-31
4312
660Q.java 컴파일시 에러.. [1]
테스터
2007-10-31
4403
659Q.날짜관련에러 [1]
박원석
2007-10-31
3840
658Q.broker process 에 관하여 [1]
초보
2007-10-31
3991
657Q.PoolableConnectionFactory [1]
김주현
2007-10-30
4359
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다