테스트 환경
OS : Windows10 64bit
이클립스 : egovframe 3.2
Was : Tomcat7
Database : MariaDB
소스 배포를 위해 리눅스 서버에서 톰캣 설정만 며칠 째 삽질중..
로컬에서는 실행이 잘 되는데 서버에서는..
로컬에서도 JNDI를 사용하고 있지만 tomcat에 직접 설정하지 않았다.
테스트를 위해 tomcat에 JNDI를 설정해보고 과정을 기록한다.
1. 메이븐을 이용해서 mariadb 커넥터를 내려받는다.
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>1.1.8</version>
</dependency>
2. mariadb-java-client-1.1.8.jar 파일을 %CATALINA_HOME%\lib에 복사한다. (톰캣 설치 폴더 아래 lib)
- maven, tomcat7 lib에 둘다 있어도 상관없는듯..
3. %CATALINA_HOME%\conf\server.xml 아래 내용 입력
<GlobalNamingResources>
<Resource name="jdbc/testdb"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="test"
password="1234"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mysql://xxx.xxx.xxx.xxx:3306/testdb?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"
/>
</GlobalNamingResources>
4. Spring - webapp/META-INF/context.xml 아래 내용 입력
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink global="jdbc/testdb" name="jdbc/testdb" type="javax.sql.DataSource"/>
</Context>
5. Spring - webapp/WEB-INF/web.xml 아래 내용 입력
<web-app>
...
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/testdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
...
</web-app>
6. Spring - WEB-INF/설정파일 경로/database.xml 아래 내용 입력
<beans>
...
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/testdb"/>
<property name="resourceRef" value="true" />
</bean>
...
</beans>
7. 이클립스 톰캣 재시작 후 db연결이 잘되는지 확인
역시 잘 돌아간다. 서버에서는 왜 그러는겨~~ ㅠ_ㅠ
'개발' 카테고리의 다른 글
[three.js] convert_obj_three.py 이용하여 obj파일을 js로 변환 (0) | 2016.06.09 |
---|---|
[JSP] 익스플로러 get 파라미터 한글 깨짐 현상 (2) | 2016.05.31 |
[Ubuntu] 우분투 초기화 후 재설치 (2) | 2016.04.25 |
[오류노트] Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' (0) | 2016.03.11 |
[Java] poi를 이용한 엑셀파일 읽고 쓰기(메이븐) (3) | 2015.12.30 |