2016-08-15 3 views
1

Groovy 인 젠킨스의 파이프 라인 스크립트에서 을 사용하여 SQL 쿼리를 실행하려고하지만 oracle 데이터 소스 (oracle.jdbc.pool.OracleDataSource)를 확인할 수 없습니다. 어떻게이 일을 할 수 있는지 알려주세요.젠킨스 파이프 라인 Groovy 스크립트에서 oracle datasource 알 수없는 소스

import groovy.sql.Sql 

    def parent = getClass().getClassLoader() 
    def loader = new GroovyClassLoader(parent) 

    def ConfigEntityObj 
    def ServiceEntityObj 
    def DBConnClassObj 
    def TibcoServiceXMLClassObj 
    String driverName = "oracle.jdbc.pool.OracleDataSource"; 
    Class.forName(driverName); 

    ConfigEntityObj = loader.parseClass(new File("D://Pedda//Tibco_Automation//src//com//merck//Entity//ConfigEntity.java")).newInstance() 
    ServiceEntityObj = loader.parseClass(new File("D://Pedda//Tibco_Automation//src//com//merck//Entity//ServiceEntity.java")).newInstance()  
    DBConnClassObj = loader.parseClass(new File("D://Pedda//Tibco_Automation//src//com//merck//comet//DBConnectionManager.groovy")).newInstance() 
    TibcoServiceXMLClassObj = loader.parseClass(new File("D://Pedda//Tibco_Automation//src//com//merck//comet//TibcoServiceXML.groovy")).newInstance() 

    TibcoServiceXMLClassObj.callSQL() 



public void callSQL() { 

    try { 

     def sql = Sql.newInstance('jdbc:oracle:thin:@DS-3860778D2AF5:1521:xe', 'tibco_automation', 'tibco_automation', 'oracle.jdbc.pool.OracleDataSource') 

     sql.query('select * from ISS_APPS_INVENTORY') { resultSet -> 
      while (resultSet.next()) { 
       println "hi" 
       println resultSet.getString(1) 
      } 

      File file1 = new File("D://Pedda//ResultSet.txt"); 
      file1.write(resultSet.getString(1)) 


     } 

    }catch(Exception e){ 
     e.printStackTrace() 
     File file = new File("D://Pedda//SQL.txt"); 
     file.write(e.getMessage()+ " Exception "+e.getStackTrace()) 

    } 
} 

예외는 다음과 같습니다.

oracle.jdbc.pool.OracleDataSourceException [java.net.URLClassLoader.findClass(Unknown Source), 
java.lang.ClassLoader.loadClass(Unknown Source), 
java.lang.ClassLoader.loadClass(Unknown Source), 
org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:450), 
org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403), 
java.lang.Class.forName0(Native Method), 
java.lang.Class.forName(Unknown Source), groovy.sql.Sql.loadDriver(Sql.java:705), 
groovy.sql.Sql.newInstance(Sql.java:445), 
groovy.sql.Sql$newInstance.call(Unknown Source), 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48), 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113), 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149), 
com.merck.comet.DBConnectionManager.getServiceList(DBConnectionManager.groovy:84), 
com.merck.comet.DBConnectionManager$getServiceList$0.call(Unknown Source), 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48), 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113), 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125), 
com.merck.comet.TibcoServiceXML.createServiceXML(TibcoServiceXML.groovy:34), 
com.merck.comet.TibcoServiceXML$createServiceXML.call(Unknown Source), 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48), 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113), 
com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:15), 
com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55), 
com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106), 
com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixName(FunctionCallBlock.java:74), 
sun.reflect.GeneratedMethodAccessor692.invoke(Unknown Source), 
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), 
java.lang.reflect.Method.invoke(Unknown Source), 
com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72), 
com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21), 
com.cloudbees.groovy.cps.Next.step(Next.java:58), 
com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154), 
org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164), 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:297), 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:78), 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:206), 
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:204), 
org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47), 
java.util.concurrent.FutureTask.run(Unknown Source), 
hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112), 
jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28), 
java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source), 
java.util.concurrent.FutureTask.run(Unknown Source), 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), 
java.lang.Thread.run(Unknown Source)] 

답변

1

내 로컬의 적절한 위치에 jar를 추가하는 경우에도 Jenkins는 독립형으로 실행됩니다. 서버에서는 Tomcat에서 실행 중이므로 Jenkins-> Apache-tomcat-> bin에 jar 파일을 추가해야했습니다.

관련 문제