내가 잘못 질문을 표현할 수도 있지만 여기에 문제가 있습니다. 나는 util이라는 라이브러리를 가지고 있는데, util 내부에는 데이터베이스 연결을 위해 C3P0을 사용할 데이터베이스 클래스가 있습니다. 이 유틸리티 라이브러리는 팀 내의 다른 개발자가 사용합니다.클래스 경로 외부에서 C3P0-config.xml을 읽도록 jar 파일의 클래스 경로에 C3p0.properties 파일을 구성하는 방법
모듈 식 시스템이 있으므로 모든 사람이 쉽게 사용할 수 있도록 시스템의 각 모듈은 자신의 데이터베이스 연결 및 속성을 해당 모듈에 맞는 것으로 지정할 수 있습니다. 우리가 실행하는 유일한 이유는 실행 쿼리를 호출하는 메소드가 모두이 라이브러리에 정의되어 있기 때문에 모든 사용자가 동일한 코드를 반복해서 다시 쓰는 대신 계속해서 그 기능을 가진 공유 라이브러리를 사용하는 것이 훨씬 효율적이기 때문입니다.
현재 설정은 내 유틸리티 라이브러리 클래스 경로 내에 C3P0.properties 파일이 있고 그 안에 C3P0-config.xml 파일의 경로를 정의한 것입니다.
com.mchange.v2.c3p0.cfg.xml =./conf의/C3P0-config.xml에
그때 구축하고 항아리와 DEVS의 나머지를 제공합니다. 그런 다음 응용 프로그램에 conf 디렉토리를 만들고 c3p0-config.xml을 추가합니다. 디렉토리의 Strucuture이 jar 파일을 실행에이
Parent directory - module name {
Sub directories
-lib -> {Util.jar & other jars}
-conf -> {c3p0-config.xml & other config files}
-logs
-modulename.jar
}
처럼 보이는 우리는 오류
2014-02-12 20:50:59 INFO MLog:124 - MLog clients using log4j logging.
2014-02-12 20:50:59 DEBUG MLog:101 - Could not find resource path text file for path '/com/mchange/v2/cfg/vmConfigResourcePaths.txt'. Skipping.
2014-02-12 20:50:59 DEBUG MLog:101 - Added paths from resource path text file at '/mchange-config-resource-paths.txt'
2014-02-12 20:50:59 DEBUG MLog:101 - Reading VM config for path list /com/mchange/v2/log/default-mchange-log.properties, /mchange-commons.properties, /c3p0.properties, hocon:/reference,/application,/c3p0,/, /mchange-log.properties,/
2014-02-12 20:50:59 DEBUG MLog:101 - The configuration file for resource identifier '/mchange-commons.properties' could not be found. Skipping.
java.io.FileNotFoundException: Resource not found at path '/mchange-commons.properties'.
at com.mchange.v2.cfg.BasicPropertiesConfigSource.propertiesFromSource(BasicPropertiesConfigSource.java:64)
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.firstInit(BasicMultiPropertiesConfig.java:185)
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>(BasicMultiPropertiesConfig.java:110)
at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)
at com.mchange.v2.cfg.ConfigUtils.readVmConfig(ConfigUtils.java:115)
at com.mchange.v2.cfg.MLogConfigSource.readVmConfig(MLogConfigSource.java:46)
at com.mchange.v2.log.MLogConfig.refresh(MLogConfig.java:59)
at com.mchange.v2.log.MLog.refreshConfig(MLog.java:59)
at com.mchange.v2.log.MLog.<clinit>(MLog.java:51)
at com.mchange.v2.naming.JavaBeanReferenceMaker.<clinit>(JavaBeanReferenceMaker.java:51)
at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<clinit>(PoolBackedDataSourceBase.java:260)
2014-02-12 20:50:59 DEBUG MLog:101 - The configuration file for resource identifier 'hocon:/reference,/application,/c3p0,/' could not be found. Skipping.
java.io.FileNotFoundException: HOCON lib (typesafe-config) is not available. Also, no resource available at '/reference,/application,/c3p0,/' for HOCON identifier 'hocon:/reference,/application,/c3p0,/'.
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.configSource(BasicMultiPropertiesConfig.java:86)
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.firstInit(BasicMultiPropertiesConfig.java:184)
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>(BasicMultiPropertiesConfig.java:110)
at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)
at com.mchange.v2.cfg.ConfigUtils.readVmConfig(ConfigUtils.java:115)
at com.mchange.v2.cfg.MLogConfigSource.readVmConfig(MLogConfigSource.java:46)
at com.mchange.v2.log.MLogConfig.refresh(MLogConfig.java:59)
at com.mchange.v2.log.MLog.refreshConfig(MLog.java:59)
at com.mchange.v2.log.MLog.<clinit>(MLog.java:51)
at com.mchange.v2.naming.JavaBeanReferenceMaker.<clinit>(JavaBeanReferenceMaker.java:51)
at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<clinit>(PoolBackedDataSourceBase.java:260)
2014-02-12 20:50:59 DEBUG MLog:101 - The configuration file for resource identifier '/mchange-log.properties' could not be found. Skipping.
java.io.FileNotFoundException: Resource not found at path '/mchange-log.properties'.
at com.mchange.v2.cfg.BasicPropertiesConfigSource.propertiesFromSource(BasicPropertiesConfigSource.java:64)
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.firstInit(BasicMultiPropertiesConfig.java:185)
at com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>(BasicMultiPropertiesConfig.java:110)
at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)
at com.mchange.v2.cfg.ConfigUtils.readVmConfig(ConfigUtils.java:115)
at com.mchange.v2.cfg.MLogConfigSource.readVmConfig(MLogConfigSource.java:46)
at com.mchange.v2.log.MLogConfig.refresh(MLogConfig.java:59)
at com.mchange.v2.log.MLog.refreshConfig(MLog.java:59)
at com.mchange.v2.log.MLog.<clinit>(MLog.java:51)
at com.mchange.v2.naming.JavaBeanReferenceMaker.<clinit>(JavaBeanReferenceMaker.java:51)
at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<clinit>(PoolBackedDataSourceBase.java:260)
어떤 문제가 될 수를 얻을? 내가 뭘 잘못하고 있니?
이상적으로 그것은 상대 디렉토리로 작업해야하지만 이상하지는 않습니다. 그냥이 디버그 로그를 표시하고에 대한 연결 풀을 만들지 않습니다. 질문에 대답하기 위해 작업 디렉토리가 변경되지 않도록 정의 된 스크립트가 있습니다. 사실 위에서 언급 한 구조는 정적이며 변경되지 않습니다. 디자인 팀에 의해 동의되었습니다. – kimathie
내가해야 할 일은 스크립트에서 시스템 속성으로 예상되는 c3p0-config.xml의 절대 경로를 설정하는 것입니다 (예 :'-Dcom.mchange.v2.c3p0 스크립트에서 JVM을 시작할 때 .cfg.xml = $ {APP_HOME}/conf/c3p0-config.xml 파일에 복사하십시오. –