2014-08-28 2 views
0

내 프로젝트에서 나는 MySQL과 mongoDB를 함께 사용해야한다. 따라서 MySQL 용 sessionFactory를 만들었습니다.Maven : MySQL과 MongoDB 함께 사용

프로젝트가 MySQL을 사용하는 경우 제대로 작동합니다. 내가 MongoDB를위한 항아리 패키지를 추가하는 순간, 나는 선에서 NullPointerException이 나타납니다

Session session = sessionFactory.OpenSession(); 

다음과 같이 내가받은 오류는 다음과 같습니다

ERROR 2014-08-28 10:28:15,366 [http-bio-8081-exec-4][] com.bng.dbscan.dao.DbscanDao - 
    java.lang.NullPointerException 
    at com.bng.dbscan.dao.DbscanDao.getData(DbscanDao.java:53) 
    at com.bng.dbscan.dao.DbscanDao.dbscan(DbscanDao.java:104) 
    at com.bng.dbscan.controller.DbscanController.dbscan(DbscanController.java:50) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

내가 MySQL을 사용 할 수있는 방법이 있나요 및 SessionFactory를 사용하여 mongoDB를 함께 사용 하시겠습니까? 제발 도와주세요. 감사.

EDIT 1 ... SessionFactory에 콩

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" destroy-method="destroy"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.bng.dbscan.entity.Data</value>   
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${DbConnection.hibernate.dialect}</prop> 
       <prop key="hibernate.hbm2ddl.auto">${DbConnection.hibernate.hbm2ddl.auto}</prop> 
       <prop key="hibernate.show_sql">${DbConnection.hibernate.show_sql}</prop> 
       <prop key="hibernate.cache.region.factory_class">${DbConnection.hibernate.cache.region.factory_class}</prop> 
       <prop key="hibernate.cache.use_second_level_cache">${DbConnection.hibernate.cache.use_second_level_cache}</prop> 
       <prop key="hibernate.cache.use_query_cache">${DbConnection.hibernate.cache.use_query_cache}</prop> 
      </props> 
     </property> 
    </bean> 

연결 콩 ...

<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"> 
     <property name="driverClass" value="${DbConnection.JdbcDrivers}" /> 
     <property name="jdbcUrl" value="${DbConnection.DSNurl}" /> 
     <property name="username" value="${DbConnection.User}" /> 
     <property name="password" value="${DbConnection.Password}" /> 
     <property name="idleConnectionTestPeriodInSeconds" value="10" /> 
     <property name="connectionTestStatement" value="Select 1" /> 
     <property name="idleMaxAgeInMinutes" value="240" /> 
     <property name="maxConnectionsPerPartition" value="${DbConnection.maxConnectionsPerPartition}" /> 
     <property name="minConnectionsPerPartition" value="${DbConnection.minConnectionsPerPartition}" /> 
     <property name="partitionCount" value="${DbConnection.partitionCount}" /> 
     <property name="acquireIncrement" value="5" /> 
     <property name="statementsCacheSize" value="100" /> 
     <property name="acquireRetryDelayInMs" value="10" /> 
     <property name="deregisterDriverOnClose" value="false" /> 
    </bean> 

편집 2 ...의 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>xxxxx</groupId> 
    <artifactId>xxx</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <namexxx</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <spring.version>3.2.4.RELEASE</spring.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.4</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.1.2</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
      <type>jar</type> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Spring 3 --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jms</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context-support</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>${spring.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- Quartz --> 
     <dependency> 
      <groupId>org.quartz-scheduler</groupId> 
      <artifactId>quartz</artifactId> 
      <version>2.2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- Log4J --> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
      <scope>provided</scope> 
      <type>jar</type> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.5.6</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>apache-log4j-extras</artifactId> 
      <version>1.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- Database --> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.9</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.mchange</groupId> 
      <artifactId>c3p0</artifactId> 
      <version>0.9.2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.2.6.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.2.6.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.0.1.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-ehcache</artifactId> 
      <version>4.2.6.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-c3p0</artifactId> 
      <version>4.2.6.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.common</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>4.0.4.Final</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.jolbox</groupId> 
      <artifactId>bonecp</artifactId> 
      <version>0.8.0.RELEASE</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- Compressing --> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-compress</artifactId> 
      <version>1.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- FTP file transfer --> 
     <dependency> 
      <groupId>commons-net</groupId> 
      <artifactId>commons-net</artifactId> 
      <version>3.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- SFTP file transfer --> 
     <dependency> 
      <groupId>com.jcraft</groupId> 
      <artifactId>jsch</artifactId> 
      <version>0.1.51</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- JSON --> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.4</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.3.2</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
      <version>2.10.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-mongodb</artifactId> 
      <version>1.3.1.RELEASE</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>xxx</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
        <encoding>UTF8</encoding> 
       </configuration> 
       <inherited>true</inherited> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>2.9</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

Maven을 사용하는 경우 jar 패키지를 추가하는 이유는 무엇입니까? 어떤 종류의 SessionFactory를 사용하고 있습니까? 최대 절전 모드? 봄? 너 스스로? – Mardoz

+0

사실, pong.xml에 mongoDB의 아티팩트를 추가했습니다. 나는 Hibernate SessionFactory를 사용하고있다. – StackAddict

+0

db 연결을 어떻게 정의합니까? – Mardoz

답변

0

그것은 아마 절대적으로 무관 mysql과 함께 mongo를 사용하고 있다는 사실과 관련이있다. 당신이 우리의 관련 코드를 표시 할 수 있습니다 :

DbscanDao.getData(), 더 구체적으로, 라인 53

그것은 예외가 발생하는 경우, 100 % 몽고와는 또는 함께 사용되는 최대 절전 모드는 아무 상관이 없습니다.

+0

Line # 53은 .. Session session = sessionFactory.OpenSession(); (나는 그것을 위에서 언급했다). 나는 두 가지 경우를 시도했다. pom.xml에서 mongoDB 아티팩트를 제거하고 프로젝트를 실행했습니다 ... 아무런 오류도 없었습니다. 그 후 나는 유물을 추가하고 달렸다. 그것은 같은 오류를 보여 주었다. 나는 그것의 이상하지만 mongoDb 유물이 sessionfactory 세션에 영향을 미치는 방법을 알고 있습니다. – StackAddict

관련 문제