Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Groovy中连接SQL server_Java_Sql Server_Selenium_Groovy_Workfusion - Fatal编程技术网

Java 无法在Groovy中连接SQL server

Java 无法在Groovy中连接SQL server,java,sql-server,selenium,groovy,workfusion,Java,Sql Server,Selenium,Groovy,Workfusion,我正在尝试使用自动化工具(Workfusion Studio)连接到SQL server,该工具使用selenium和groovy。当我尝试创建连接时,收到一个错误“找不到适合jdbc的驱动程序:sqlserver:/xxxxxxxxxxxxx” 我使用的代码如下: <?xml version="1.0" encoding="UTF-8"?> <config xmlns="http://web-harvest.sourceforge.net/schema/1.0/config"

我正在尝试使用自动化工具(Workfusion Studio)连接到SQL server,该工具使用selenium和groovy。当我尝试创建连接时,收到一个错误“找不到适合jdbc的驱动程序:sqlserver:/xxxxxxxxxxxxx”

我使用的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://web-harvest.sourceforge.net/schema/1.0/config" scriptlang="groovy">
<selenium-flow>
<selenium name="seleniumDriver" browser="chrome" close-on-completion="true" start-in-private="true">
<script><![CDATA[
import java.sql.*;
this.class.classLoader.addURL(new URL("http://clojars.org/repo/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.jar"));
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String dbURL = "jdbc:sqlserver://SERVER_NAME:1433;databaseName =DATABASE_NAME;";
String userName = "USER_NAME";
String password = "PASSWORD";
Connection con = DriverManager.getConnection(dbURL, userName, password);
]]></script>
</selenium> 
</selenium-flow>
</config>

 

请帮助解决此问题。

JDBC连接是通过全局类加载器执行的,因此没有看到LIB添加到本地类加载器

您可以将驱动程序jar全局添加到Control Tower tomcat:

$INSTALL_DIR/apps/webapps/tomcat/lib
有关在WorkFusion Studio中工作的逻辑,请参阅Eclipse指南中关于如何添加外部jar的部分

作为一种变通方法(不建议用于生产代码),可以执行以下技巧:

<script><![CDATA[
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    } catch (ClassNotFoundException expected) {
        groovy.lang.GroovyShell.class.classLoader.addURL(new URL("http://clojars.org/repo/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.jar"));
    }
]]></script>

执行查询的更有效方法如下(将正确关闭数据库连接等):


从actor中选择第一个\u名称

您尝试过吗?是的,我可以使用JAVA连接到SQL server,但不使用此脚本。
<database connection="jdbc:sqlserver://hostname:6501;DatabaseName=database"
          jdbcclass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
          username="user" password="securepassword">

    select first_name from actor
</database>