我创建了一个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:
  
  org / apache / qpid / proton / engine / Extendable


如果我缺少一些进口商品,有人可以指出。

谢谢,

斯里·哈莎

最佳答案

根据您的代码,它似乎来自官方教程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-jbcpkix-jdk15on)添加到项目类路径中。
如有任何疑问,请随时告诉我。

09-13 12:18