'tomcat'에 해당되는 글 2건

  1. 2008.11.29 Cannot create PoolableConnectionFactory 에러관련
  2. 2008.11.09 tomcat host 추가
posted by 준치 2008. 11. 29. 22:39

tomcat 5.0 사용 중 이런 에러가 발생해서 아침부터 욕 쳐먹었더니 기분이 매우 우울하네.

 

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (IO 예외 상황: The Network Adapter could not establish the connection)
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (IO 예외 상황: The Network Adapter could not establish the connection)
 at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
 at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
 at com.feelingk.dbcp.DbcpUtil.<init>(DbcpUtil.java:47)
 at com.feelingk.dbcp.DbcpUtil.<init>(DbcpUtil.java:36)
 at com.feelingk.lgt_fb_web.dao.TbRenewMenuVoDAO.selectList(TbRenewMenuVoDAO.java:137)
 at com.feelingk.lgt_fb_web.ctl.DirectoryCtl.selectExtList(DirectoryCtl.java:299)
 at org.apache.jsp.FB.ContentsView_jsp._jspService(ContentsView_jsp.java:817)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
 at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
 at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
 at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
 at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
 at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
 at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
 at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
 at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439)
 at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
 at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
 at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
 at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
 at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
 at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
 at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
 ... 40 more

 

이런 메세지가 발생한다.

눈여겨 볼거는 맨 첫째줄만 보면 될 듯하다.

 

이유인즉슨

"네트워크 상태가 불안하여 오라클 DB 서버에 접속 할 수 없습니다."

라는데

오라클 DB 에 접속하지 못하는 이유로는

첫째, 오라클 DB 서버 자체가 죽어있을 때

둘째, 오라클 DB 서버에 접속하는 리스너가 죽어 있을 때

셋째, 둘 다 죽어 있을 때

이다.


posted by 준치 2008. 11. 9. 13:08

Tomcat 5.5 버전대의 웹어플리케이션을 설정하는 방법을 정리 해 둡니다.
물론, Jakarta-Apache 의 Tomcat 매뉴얼 을 참조하는게 제일 정확하고 올바른 방향입니다.

이 문서를 작성하는 이유는 처음 웹어플리케이션을 구축하는 단계에서 꼭 필요한 설정사항과 설정파일을
간편히 참조하고자 하는데 그 목적이 있습니다.

1. Context Path 설정
톰캣 4 버전대의 경우, Context Path를 [CATALINA_HOME]/conf/server.xml 에 기술 했지만 5 버전부터는
그 방법이 바뀌었습니다.

  - 1단계 :  [CATALINA_HOME]/conf/server.xml 에 HOST 항목 추가하기
     톰캣 5.5 를 설치하고 난 후 server.xml 를 열어보면 아래와 같이 기본적으로 localhost 란 이름으로 HOST
     항목이 정의되어 있을 겁니다.

    <Host
        appBase="webapps"
        autoDeploy="false"
        liveDeploy="false"
        name="localhost">
    </Host>
      이 아래에 이어서 추가하고자하는 HOST항목을 추가 해 줍니다.
    <Host
        appBase="webapps"
        autoDeploy="false"
        liveDeploy="false"
        name="www.new_site.com">
    </Host>

   - 2단계 :  [CATALINA_HOME]/conf/Catalina 디렉토리에 HOST 디렉토리 추가하기
      디폴트로 [CATALINA_HOME]/conf/Catalina/localhost 란 디렉토리가 있을겁니다.
      [CATALINA_HOME]/conf/Catalina 디렉토리 내에 1단계에서 추가한 HOST ( www.new_site.com )의
      이름을 갖는 디렉토리를 추가합니다.

      [CATALINA_HOME]/conf/Catalina/www.new_site.com

    - 3단계 :  ROOT.xml 생성
      2단계에서 생성한 디렉토리 내에 빈 ROOT.xml 을 만들고 그 파일에 context path를 기술해 줍니다. 
      <?xml version="1.0" encoding="UTF-8"?>
      <Context
          docBase="D:/Project2007/AirForceClubReservationSystem/build/web"
          privileged="true">
      </Context>

      여기서 docBase는 웹어플리케이션이 위치하는 절대경로를 기술해 줍니다.


2. 공용 라이브러리 설정

    - 4단계 : 공용 라이브러리 배치하기
      위와같은 순서로 톰캣서버에 여러개의 호스트가 존재 할 수 있는데 모든 호스트가 공통으로 사용하는 라이브러리 ( JDBC드라이버와 같은 )
      등이 있을 수 있습니다. 각각의 호스트별로 java 옵션을 통하여 클래스패스를 걸어주셔도 되지만 톰캣이 올라가는 와중에 
      참조해야 하는 라이브러리라면 굳이 옵션으로 주시지 않으셔도 됩니다.

      [CATALINA_HOME]/common/lib 디렉토리안에 필요한 라이브러리를 넣어두시면 톰캣 스타트업시 별도의 클래스패스를
      잡지 않아도 자동 참조를 시도 합니다.

    - 5단계 : Tomcat 재시작 하기
      여기까지 설정한 후 톰캣을 재시작 하시면 톰캣 어드민 콘솔을 통하여 다음과 같이 HOST가 추가되어 있는것을 확인 하실 수 있습니다.

호스트 추가 후 호스트 추가 전

                                       호스트 추가 전                                                            호스트 추가 후


    - 6단계 : 접속 하기
      hosts ( C:\Windows\System32\drivers\etc\hosts ) 파일을 열어 위에서 추가한 호스트 ( www.new_site.com ) 를 
      로컬 호스트로 지정 한 후 
                127.0.0.1                www.new_site.com
      브라우저를 열고 http://www.new_site.com:[포트번호] 의 주소로 접속 해 본다.
<출처 : 서비의 다락방 ( http://www.yunsobi.com )>
-출처를 밝혀주신 당신은 아름다운 사람입니다.-