我有一个 Azure 函数应用程序,其中有一个用 Java 编写的计时器触发函数。我需要连接到部署在其中一台 Azure VM 上的 PostgreSQL(此处不使用托管 Postgres)。
我的代码:
import java.sql.*;
public class MyFunction {
public static final String DB_URL = "jdbc:postgresql://<host>:<port>/<dbName>";
public static final String DB_USER = "<dbUser>";
public static final String DB_PASSWORD = "<dbPassword>";
@FunctionName("timerTrigger")
public void timerTrigger(@TimerTrigger(name = "timerTriggerFunc", schedule = "0 */30 * * * *")
String timerInfo, ExecutionContext context) {
Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
connection.setAutoCommit(false);
}
}
当我运行这个函数时,它抛出以下异常:
[11/29/2019 10:42:24] java.sql.SQLException: No suitable driver found for jdbc:postgresql://<host>:<port>/<dbName>
[11/29/2019 10:42:24] at java.sql.DriverManager.getConnection(DriverManager.java:689)
[11/29/2019 10:42:24] at java.sql.DriverManager.getConnection(DriverManager.java:247)
请帮忙解决这个问题。我在堆栈溢出中浏览了其他问题并浏览了,但在其他地方没有得到我的用例。
尝试导入 postgresql 驱动程序。我使用下面的代码成功连接到我的数据库:
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
import java.sql.*;
/**
* Azure Functions with HTTP Trigger.
*/
public class Function {
@FunctionName("HttpTrigger-Java")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}) HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) throws ClassNotFoundException {
Connection c = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager
.getConnection("jdbc:postgresql://<DB server>:5432/<dbname>",
"<username>", "<password>");
} catch (SQLException e) {
return request.createResponseBuilder(HttpStatus.OK).body(e.getMessage()).build();
}
return request.createResponseBuilder(HttpStatus.OK).body("Opened database successfully").build();
}
}
在maven中添加最新的postgresql驱动程序dependencies
:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.8.jre7</version>
</dependency>
Azure Java 函数的结果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)