jihhhhh
20
2021-01-20 19:11:02 작성 2021-01-20 19:17:46 수정됨
2
99

JSP에서 myBatis와 mariaDB 커넥션풀로 연동시 NullpointerException 조언부탁드립니다ㅠㅠㅠㅠ


안녕하세요 ㅠ

mybatis공부중인데

아래와 같이 에러가 뜨네요 ㅠ

타입 예외 보고

메시지 행 [22]에서 [/ex02.jsp]을(를) 처리하는 중 예외 발생

설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

예외

org.apache.jasper.JasperException: 행 [22]에서 [/ex02.jsp]을(를) 처리하는 중 예외 발생

19: 	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
20: 	System.out.println( "설정 성공" ); 
21: 	
22: 	sqlSession = sqlSessionFactory.openSession( true );
23: 	
24: 	DeptTO to = (DeptTO)sqlSession.selectOne( "select1" );
25: 	



코드는 다음과 같습니다!

-context.xml

<?xml version="1.0" encoding="utf-8" ?>
<Context>
	<Resource
		name = "jdbc/mariadb1"
		auth = "Container"
		type = "javax.sql.DataSource"
		driverClassName = "org.mariadb.jdbc.Driver"
		url = "jdbc:mariadb://localhost:3307/sample"
		username = "root"
		password = "!123456"
	/>
</Context>

-myBatisConfig.xml

<?xml version= "1.0" encoding ="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 데이터베이스 연결 설정 -->
<configuration>
	<environments default="maraidb2">
	
		<environment id="maraidb1">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="org.mariadb.jdbc.Driver" />
				<property name="url" value="jdbc:mariadb://localhost:3307/sample" />
				<property name="username" value="root" />
				<property name="password" value="!123456"/>
			</dataSource>
		</environment>
		
		<environment id="mariadb2">
			<transactionManager type="JDBC" />
			<dataSource type="JNDI">
				<property name="data_source" value="java:comp/env/jdbc/mariadb1" />
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="model1/dept.xml"/>
	</mappers>
</configuration>

-ex02.jsp (실행jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.io.IOException" %>
<%@ page import="java.io.InputStream" %>
<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>
<%@ page import="model1.DeptTO" %>

<%
	String resource = "myBatisConfig.xml";
	InputStream is = null;
	SqlSession sqlSession = null;
	
	try {
	is = Resources.getResourceAsStream( resource );	
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( is );
	System.out.println( "설정 성공" ); 
	
	sqlSession = sqlSessionFactory.openSession( true );
	
	DeptTO to = (DeptTO)sqlSession.selectOne( "select1" );
	
	System.out.println( to.getDeptno() );
	System.out.println( to.getDname() );
	
	
	} catch( IOException e ) {
		System.out.println( "에러 : " + e.getMessage() );
	} finally {
		if( is != null ) is.close();
	}
	
%>


데이터베이스 직접연결하면(environments default="maraidb1"일 때) 실행이 잘 되는데

커넥션풀(environments default="maraidb2"일 때)하면 계속 


sqlSession = sqlSessionFactory.openSession( true );


위 구문에서 nullpointerexception 에러가 나오네요 ㅠㅠ 어떻게 수정해야되는지 조언 부탁드립니다.!


0
  • 답변 2

  • basscraft
    3k
    2021-01-20 22:26:37
    직접연결 잘되고
    커넥션풀로 하면 NullPointerException 이면
    커낵션풀 설정이 잘 못 돴을 확률이 높습니다
  • jihhhhh
    20
    2021-01-20 23:49:48

    답변감사합니다! 제가 생각할때도 그런 것 같아서 이것저것 찾아보는데 해결이 안되네요 ㅠㅠㅠ

  • 로그인을 하시면 답변을 등록할 수 있습니다.