2016-08-15 106 views
1

我试图从管道脚本中使用groovy执行sql查询, 但它不能解决oracle数据源(oracle.jdbc.pool.OracleDataSource)。请让我知道我该如何做这项工作。oracle数据源jenkins管道中未知源groovy脚本

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

其再次加入的罐子在适当的位置,我在当地的情况下,詹金斯运行作为独立。在服务器中,它运行在Tomcat中,所以我必须在Jenkins-> Apache-tomcat-> bin中添加jar文件。