2017-10-06 5 views
0

웹 스피어 LP 서버 (WP 7)를 시작하려고하면 Eclipse 콘솔에서 오류가 발생합니다.WAS LP 서버 시작시 오류 발생 ClassNotFoundException : com.ibm.db2.jcc.DB2Driver

[2017-10-06 12:04:46,952] [ERROR] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.error [19] SimpleDataSource: Error while loading properties. Cause: java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver 
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver 
    at java.lang.Class.forNameImpl(Native Method) 
    at java.lang.Class.forName(Class.java:278) 
    at com.ibatis.common.resources.Resources.classForName(Resources.java:267) 
    at com.ibatis.common.resources.Resources.instantiate(Resources.java:283) 
    at com.ibatis.common.jdbc.SimpleDataSource.initialize(SimpleDataSource.java:199) 
    at com.ibatis.common.jdbc.SimpleDataSource.<init>(SimpleDataSource.java:116) 
    at com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory.initialize(SimpleDataSourceFactory.java:31) 
    at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$9.process(SqlMapConfigParser.java:220) 
    at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121) 
    at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:105) 
    at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) 
    at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) 
    at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72) 
    at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) 
    at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:46) 
    at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63) 
    at com.pm.testdatamgt.persistence.util.SqlMapBuilder.build(SqlMapBuilder.java:67) 
    at com.pm.testdatamgt.persistence.util.SqlMapConfig.<clinit>(SqlMapConfig.java:71) 
    at com.pm.testdatamgt.persistence.util.SqlMapConfigFactory.getSqlMapInstance(SqlMapConfigFactory.java:37) 
    at com.pm.persistence.dao.impl.ReferenceCodeDaoImpl.getRefCatIdForSname(ReferenceCodeDaoImpl.java:95) 
    at com.pm..service.impl.ReferenceCodeServiceImpl.initAttributeNames(ReferenceCodeServiceImpl.java:99) 
    at com.pm.testdatamgt.startup.StartupServlet.loadVariables(StartupServlet.java:139) 
    at com.pm.testdatamgt.startup.StartupServlet.init(StartupServlet.java:125) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1428) 
    at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:1205) 
    at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:1173) 
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1075) 
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6595) 
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:468) 
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApplication(DynamicVirtualHost.java:463) 
    at com.ibm.ws.webcontainer.osgi.WebContainer.startWebApplication(WebContainer.java:1120) 
    at com.ibm.ws.webcontainer.osgi.WebContainer.access$000(WebContainer.java:104) 
    at com.ibm.ws.webcontainer.osgi.WebContainer$2.run(WebContainer.java:932) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:277) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
    at java.lang.Thread.run(Thread.java:785) 

나는

**<library id="DB2JCCLib"> 
     <fileset dir="${server.config.dir}/resources/DB2" includes="db2jcc.jar, db2jcc_license_cisuz.jar, db2jcc_license_cu.jar"/> 
</library> 
dataSource id="db2" jndiName="jdbc/db2"> 
    <jdbcDriver libraryRef="DB2JCCLib"> 
    </jdbcDriver> 
    <properties.db2.jcc databaseName="DB2" serverName="tsoc.nnnn.com" portNumber="5002"/> 
</dataSource>** 

DB2 항아리가주고받는 위치에있는 내 server.xml에 필요한 데이터 소스를 추가했습니다. 이 디버깅하는 방법을 뭔가 또는 포인터를 놓치고 있습니까 ??

감사

+0

server.xml이 올바른 것처럼 보입니다. CNFE의 전체 스택 추적을 표시 할 수 있습니까? 스택을 구성하는 응용 프로그램의 Java 코드뿐만 아니라 CNFE –

+0

db2jcc * .jar 파일은 실제로 $ {server.config.dir}/resources/DB2 디렉토리에 있습니까? –

+0

@AndyGuibert 첨부 된 전체 오류 추적 –

답변

2

서버 구성에서 데이터 소스를 사용하여, 자유는 데이터 소스 구현 클래스를로드하려고 할 경우 등 오히려 예외 보여줍니다 드라이버 클래스에 비해

com.ibm.db2.jcc.DB2DataSource 
com.ibm.db2.jcc.DB2ConnectionPoolDataSource 
com.ibm.db2.jcc.DB2XADataSource 

,

com.ibm.db2.jcc.DB2Driver 

예외 스택이 부족한 좋은 추측은 응용 프로그램이 co를 사용하는 대신 DriverManager.getConnection을 사용하려고 시도하는 것일 수 있다는 것입니다 데이터 소스를 구성하십시오. 정말로 이것을 원한다면 (전역 트랜잭션 등록 및 연결 풀링과 같은 응용 프로그램 서버에서 제공하는 많은 기능을 잃어 버리게 될 것입니다) 응용 프로그램에서 JDBC 드라이버 라이브러리를 직접 사용할 수 있도록해야합니다. 예를 들어,

<application location=...> 
    <classloader commonLibraryRef="DB2JCCLib"/> 
</application> 
+0

감사. 내 문제가 해결되었습니다. –