jboss4.23GA 구성 JNDI

인터넷에서 전수받은...절차가 마침내 배합되었다.
 
1. JBOSSHOME\docs\examples\jca\에 해당하는 데이터베이스 구성, 파일 COPY
      JBOSS_HOME\server\default\deploy\아래.저는 MYSQL.그래서 COPY는 mysql-ds입니다.xml
안의 내용에 관해서는.널 믿어도 딱 봐도 알아..대응하는 설정으로 바꿔서...저는 이렇습니다.
<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connectionurl>jdbc:mysql://127.0.0.1:3306/test</connectionurl>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <use-java-context>false</use-java-context>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>
      org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
   </exception-sorter-class-name>
    
    
    <new-connection-sql>
     select * from books
   </new-connection-sql>
     
     
     <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

수고를 덜기 위해 주석을 지웠습니다..^--^
 
2 . jboss-4.2.3 수정.GA\server\default\conf\아래의 standerjbosscmp-jdbc.xml에서 아래에 있는
 <!-- optional since 4.0 <datasource-mapping>Hypersonic SQL</datasource-mapping> -->

 
주석 제거...그리고 Hypersonic SQL을 위에서 대응하는 것으로 변경합니다.
mySQL의 mySQL.대소문자 주의...
 
3 . 당신의 드라이버를 대응하는 JBOSS 어플lib에 넣는 것을 잊지 마세요..저 JBOSS는 DEFAULT를 사용해서 넣었어요.default\conf\lib 아래...
4. 코드 작성...테스트...
 
 
 Properties properties = new Properties();
            properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                    "org.jnp.interfaces.NamingContextFactory");
            properties.setProperty(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
            properties.setProperty(Context.PROVIDER_URL, "localhost:1099");
            Context cont = new InitialContext(properties);
            Object obj=  cont.lookup("java:/MySqlDS");
            DataSource ds =(DataSource)obj;
            Connection con =ds.getConnection();
            Statement stmt = con.createStatement();
            ResultSet rs =stmt.executeQuery("select * from books");
            while(rs.next()){
                System.out.println(rs.getString(1)+"     "
              +rs.getString  (2));
            }
            rs.close();
            stmt.close();
            con.close();
            ds=null;
            System.out.println(" is ok!");

 
PS: 위에 코드를 쓸 때 서버\default\conf\jndi를 어떻게 쓰는지 모릅니다.properties 파일이 JBOSS 구성에 연결됩니다.
 
고수의 해답을 기대하며...
 
첫 번째 단계에서 빨간색 줄이 있는 것이 어울리지 않으면 나타날 것이다.JNDI NOT BOUND!!

좋은 웹페이지 즐겨찾기