我尝试使用正确的连接字符串运行服务客户端示例https://github . com/Azure/Azure-IOT-SDK-Java/blob/master/Service/IOT-Service-samples/Service-Client-Sample/src/main/Java/samples/com/Microsoft/Azure/SDK/IOT/serviceclientsample . Java,但它返回错误:
********* Starting ServiceClient sample...
Creating ServiceClient...
Exception in thread "main" java.lang.IllegalArgumentException: The connection string has an invalid value for property.
at com.microsoft.azure.sdk.iot.service.IotHubConnectionStringBuilder.validateFormat(IotHubConnectionStringBuilder.java:196)
at com.microsoft.azure.sdk.iot.service.IotHubConnectionStringBuilder.validate(IotHubConnectionStringBuilder.java:176)
at com.microsoft.azure.sdk.iot.service.IotHubConnectionStringBuilder.parse(IotHubConnectionStringBuilder.java:132)
at com.microsoft.azure.sdk.iot.service.IotHubConnectionStringBuilder.createConnectionString(IotHubConnectionStringBuilder.java:42)
at com.microsoft.azure.sdk.iot.service.ServiceClient.createFromConnectionString(ServiceClient.java:69)
at com.microsoft.azure.sdk.iot.service.ServiceClient.createFromConnectionString(ServiceClient.java:44)
at testiothub.Main.openServiceClient(Main.java:104)
at testiothub.Main.main(Main.java:52)
我正在使用:
private static final String connectionString = "Endpoint=sb://[example_endpoint].servicebus.windows.net/;SharedAccessKeyName=[mySharedAccessName];SharedAccessKey=[SharedAccessKey]";
private static final String deviceId = "my_device_example";
其中< code>example_endpoint是我的endpoint,< code>mySharedAccessName是我的共享访问名的名称,< code>SharedAccessKey是我的密钥。
我认为这是一个基于位于第196行的Java正则表达式的错误:https://github.com/Azure/azure-iot-sdk-java/blob/94930586487573a9f9d43cf10fe6b17ae71c01c3/service/iot-service-client/src/main/java/com/microsoft/azure/sdk/iot/service/IotHubConnectionStringBuilder.java#L196
我的java版本和Azure SDK是:
openjdk version "1.8.0_265"
OpenJDK Runtime Environment Corretto-8.265.01.1 (build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM Corretto-8.265.01.1 (build 25.265-b01, mixed mode)
<dependency>
<groupId>com.microsoft.azure.sdk.iot</groupId>
<artifactId>iot-service-client</artifactId>
<version>1.24.0</version>
</dependency>
我该如何解决这个问题?
显示的错误是正确的。您正在使用的连接字符串属于以< code>sb://开头的< code > Event Hub-compatible endpoint ,即它使用服务总线。如果要使用serviceClient,需要使用iotHub的连接字符串,可以在< code>IoT hub blade -中找到
我收到连接重置错误,代码如下。到底是什么原因导致了连接重置?这是因为我试图忽略SSL证书验证的方式吗? 堆栈跟踪 java.net.SocketExcema:连接重置java.net.SocketInputStream.read(SocketInputStream.java:179)com.ibm.jsse2. a. a(a.java:148)com.ibm.jsse2. a. a(a.java:
编辑2:我切换到,并用包装客户端工厂,这样设备就可以很好地到达后端。但是当后端发回一些东西时,我会得到错误的出站套接字,客户机套接字死亡。我认为这是因为后端没有正确路由消息所必需的头。如何捕获此信息?我的配置类如下:
错误: 发生错误:09:54:58:错误:连接到服务器时出错:致命:用户“Postgres”的密码身份验证失败。
一个非常基本的问题是,在Kotlin中连接字符串的正确方法是什么? 在Java中,可以使用concat()方法,例如。 但是Kotlin无法使用concat()函数。我应该使用符号吗?
如何使用套接字将Swift客户端连接到Java服务器?如何在客户端和服务器之间发送不同的数据类型?
我正在开发一个与许多客户端连接的服务器。我需要知道客户端何时与服务器断开连接。因此,每个客户端都向服务器发送一个特定的字符。如果两秒钟后没有收到字符,那么我应该断开服务器与客户端的连接(释放为此客户端分配的资源)。 这是我的服务器的主要代码: 第一个问题是,我用来识别在线客户端的方式(每秒发送特定消息)是否是一种好方法? 如果它是好的,我如何使用检测与女巫客户端相关,然后如何断开密钥与服务器的连接