2009-10-07 3 views
0

JDBC 연결 풀을 사용하는 스프링 웹 응용 프로그램 (glassfish 서버)이 있습니다. 다음과 같이 XML 파일로 정의했습니다.JDBC 데이터 소스와 함께 작동하도록 부두 구성

<resources> 
    <jdbc-connection-pool allow-non-component-callers="true" associate-with-thread="true" 
          connection-creation-retry-attempts="2" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" 
          connection-leak-timeout-in-seconds="0" connection-validation-method="table" datasource-classname="oracle.jdbc.pool.OracleConnectionPoolDataSource" 
          fail-all-connections="false" idle-timeout-in-seconds="2147483638" is-connection-validation-required="true" 
          is-isolation-level-guaranteed="false" lazy-connection-association="true" lazy-connection-enlistment="true" 
          match-connections="false" max-connection-usage-count="0" max-pool-size="60" max-wait-time-in-millis="60000" 
          name="company.jdbc.sc.nonxa.pool" non-transactional-connections="false" pool-resize-quantity="2" 
          res-type="javax.sql.ConnectionPoolDataSource" statement-timeout-in-seconds="300" steady-pool-size="16" 
          transaction-isolation-level="read-committed" validate-atmost-once-period-in-seconds="1" validation-table-name="SC_VALIDATE" 
          wrap-jdbc-objects="false"> 
     <property name="DataSourceName" value="OracleNonXADataSource"/> 
     <property name="ImplicitCachingEnabled" value="false"/> 
     <property name="NetworkProtocol" value="tcp"/> 
     <property name="Password" value="password"/> 
     <property name="LoginTimeout" value="0"/> 
     <property name="URL" value="jdbc:oracle:thin:@oradbdev.company.ru:1521:COMPANY"/> 
     <property name="NativeXA" value="false"/> 
     <property name="User" value="prog10"/> 
     <property name="ExplicitCachingEnabled" value="false"/> 
     <property name="PortNumber" value="0"/> 
     <property name="MaxStatements" value="0"/> 
    </jdbc-connection-pool> 
    <jdbc-resource enabled="true" jndi-name="company.jdbc.sc.nonxa.db" object-type="user" pool-name="company.jdbc.sc.nonxa.pool"/> 
</resources> 

이제 통합 테스트를 위해 내장 된 Jetty 서버 내부에서 응용 프로그램을 시작해야합니다.

<New id="DS" class="org.mortbay.jetty.plus.naming.Resource"> 
    <Arg> 
     <Ref id="wac"/> 
    </Arg> 
    <Arg>jdbc/DS</Arg> 
    <Arg> 
     <New class="oracle.jdbc.pool.OracleConnectionPoolDataSource"> 
      <Set name="DataSourceName">OracleNonXADataSource</Set> 
      <Set name="ImplicitCachingEnabled">false</Set> 
      <Set name="NetworkProtocol">tcp</Set> 
      <Set name="Password">password</Set> 
      <Set name="LoginTimeout">0</Set> 
      <Set name="URL">jdbc:oracle:thin:@oradbdev.company.ru:1521:COMPANY</Set> 
      <Set name="NativeXA">false</Set> 
      <Set name="User">prog10</Set> 
      <Set name="ExplicitCachingEnabled">false</Set> 
      <Set name="PortNumber">0</Set> 
      <Set name="MaxStatements">0</Set> 
     </New> 
    </Arg> 
</New> 

그것은 연결 풀을 등록하지만, 나는 또한 지정된 이름의 JDBC-자원을 등록 할 태어나 셨 : 나는이 같은 jetty.xml의 파일에 연결 풀을 추가하기 위해 노력하고있어.

어떻게 할 수 있습니까?

답변

1

Jetty에서는 구성 (여기서는 jdbc/DS)에 연결 풀의 JNDI 이름을 설정합니다. 그렇다면 왜 "jdbc-resource"를 등록해야합니까? 이것은 GlassFish의 특정 단계 인 것 같습니다.

+0

이 데이터 소스를 webxml에 이름으로 등록하지만 오류가 있습니다. 내장 된 오류 : 객체가 org.mortbay.jetty.webapp.WebAppContext 클래스가 아닙니다. 어떻게 해결할 수 있습니까? – Chuprin

+0

어떤 부두 버전을 사용하고 있습니까? –