我创建了一个EventHub来接收一些随机消息。
我只是想看看我是否可以从java应用程序发送消息。
以下是代码
package com.hasher.connectedcars.sender;
import java.io.IOException;
import java.nio.charset.*;
import java.util.*;
import java.util.concurrent.ExecutionException;
import com.microsoft.azure.eventhubs.*;
import com.microsoft.azure.servicebus.*;
public class Sender {
public static void main(String[] args) throws ServiceBusException,
ExecutionException, InterruptedException, IOException {
try {
final String namespaceName = "******************";
final String eventHubName = "**************************";
final String sasKeyName = "*******************";
final String sasKey = "*******************";
ConnectionStringBuilder connStr = new ConnectionStringBuilder(
namespaceName, eventHubName, sasKeyName, sasKey);
byte[] payloadBytes = "TEST MESSAGES"
.getBytes("UTF-8");
EventData sendEvent = new EventData(payloadBytes);
EventHubClient ehClient = EventHubClient.createFromConnectionStringSync(connStr.toString());
ehClient.sendSync(sendEvent);
} catch (Exception e) {
e.printStackTrace();
}
}
我从
的eclipse中得到以下编译错误EventData sendEvent = new EventData(payloadBytes);
无法解析org.apache.qpid.proton.message.Message类型。它 是从所需的.class文件间接引用的
=============================================== ==========================线程中的异常" main" java.lang.NoClassDefFoundError:
组织/阿帕奇/ qpid /质子/发动机/可扩展
如果我错过了一些进口,有人会指出。
谢谢,
斯里莎
答案 0 :(得分:0)
根据您的代码,它似乎来自官方教程https://azure.microsoft.com/en-us/documentation/articles/event-hubs-java-ephjava-getstarted/#send-messages-to-event-hubs。
我试图在我的maven项目中重现您的问题,但失败了。我在pom.xml
文件中添加了Azure EventHub SDK for Java的maven依赖项,然后在没有NoClassDefFoundError
异常的情况下正常工作。所以我猜你可能不会使用maven来构建你的项目,那么你需要手动将依赖库添加到你的eclipse项目的类路径中。
请尝试使用maven在Eclipse中构建项目,或者将这些依赖项(proton-j& bcpkix-jdk15on)添加到项目类路径中。 如有任何疑虑,请随时告诉我。
答案 1 :(得分:0)