DBCP 관련 문제 때문에 질문 드립니다.

by 피아오 posted Apr 04, 2011

OS : Ubuntu 10.04 Server

Web Server : Apache 

Container : Tomcat 6.0


 현재 제가 게시판을 만들고 있는 중입니다. 웹 페이지는 JSP를 사용하여 만들고 있는 상태이고 bean을 사용하기 위해서 data를 담을 BbsData객체와 BbsData 객체를 이용해서 data를 DB에 쓰거나 불러오는 기능을 하는 BbsManager 라는 객체를 만들어둔 상태 입니다. DB와의 연결 부분 또한 BbsManager에서 담당하도록 했습니다. 


일단 코드를 보시면


BbsManager 파일 

public BbsManager() {

try {

Context initContext = new InitialContext();

Context envContext = (Context) initContext.lookup("java:/comp/env");

ds = (DataSource) envContext.lookup("bbs");

                 }

......


BbsManager를 사용하는 JSP 파일

<jsp:useBean id="db" class="myjsp.bbs.BbsManager"/>

<%

          ...............

          DataList = db.getDataList(searchField, searchWord);    --> 문제 되는 부분

%>


 

----------------------------------------------------------------참고 파일--------------------------------------------------------------------------------------------------

Tomcat 의 server.xml 파일

<Resource name="bbs" auth="Container" type="javax.sql.DataSource"

factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="cubrid.jdbc.driver.CUBRIDDriver"

url="jdbc:cubird:localhost:33000:bbs:::" username="dba" password="1234"

initialSize="10" maxActive="10" maxIdle="10" maxWait="-1"

poolPreparedStatement="true"/>



CUBRID의 cubrid_broker.conf 파일

[%BROKER1]

SERVICE = ON

BROKER_PORT = 33000

...

STATEMENT_POOLING = ON

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


이 상태에서 jsp page 로딩 시에 아래 예외 메세지가 출력 됩니다.


org.apache.jasper.JasperException: java.lang.NullPointerException


처음에는 useBean 액션 태그의 문제인줄 알았지만 테스트 코드를 돌려보니 BbsManager객체의 생성자에서  DataSource 인스턴스인 ds가


값을 할당 받지 못하여 생기는 문제인 것 같습니다. 


이 문제를 해결하려고 여러가지 방법을 시도해 봤지만 상당히 고전하고 있기에 여쭤 볼려고 글을 올렸습니다. 


여기까지 읽어 주셔서 감사하구요. 혹시 이 문제에 대한 해결 방법을 아신다면 가르쳐 주셨으면 고맙겠습니다.