2016-10-07 7 views
1

Я создал EventHub для получения случайных сообщений.Исключение из потока «main» java.lang.NoClassDefFoundError: org/apache/qpid/proton/engine/Extendable

Я просто пытался узнать, могу ли я отправлять сообщения из приложения 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(); 
    } 
} 

Я получаю ошибку ниже компиляции из затмения в

EventData sendEvent = new EventData(payloadBytes); 

The type org.apache.qpid.proton.message.Message cannot be resolved. It is indirectly referenced from required .class files

========================================================================= Exception in thread "main" java.lang.NoClassDefFoundError:

org/apache/qpid/proton/engine/Extendable

Может кто-то момент, если мне не хватает некоторых импорта.

Спасибо,

Срихарша

+0

Вы пропускаете класс зависимостей в пути к классам: Вы должны добавить следующие четыре JAR-файлы из дистрибутив Apache Qpid JMS AMQP 1.0 в Java CLASSPATH при создании и запуске приложений JMS с Service Bus: geronimo-jms_1.1_spec-1.0.jar qpid-amqp-1-0-client- [версия] .jar qpid-amqp-1-0-client-jms- [версия] .jar qpid-amqp-1-0-common- [версия] .jar – Eric

ответ

0

В соответствии с вашим кодом, это, кажется, из учебника OFFICAL https://azure.microsoft.com/en-us/documentation/articles/event-hubs-java-ephjava-getstarted/#send-messages-to-event-hubs.

Я попытался воспроизвести вашу проблему в своем проекте maven, но не смог. Я добавил зависимость maven от Azure EventHub SDK for Java в файле pom.xml, тогда он отлично работает без исключения NoClassDefFoundError. Поэтому я предполагаю, что вы не можете использовать maven для создания своего проекта, тогда вам нужно вручную добавить библиотеки зависимостей в путь к классам вашего проекта eclipse.

Попробуйте использовать maven для создания своего проекта в Eclipse или добавьте эти зависимости (proton-j & bcpkix-jdk15on) в путь к классу проекта. Любое беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.

0

Интересно, что вы получаете эту ошибку с последней версией SDK (0.9.0) даже при использовании Maven. Возвращаясь к версии 0.8.2, кажется, обходной путь или, вы можете просто добавить следующий код в pom.xml:

<dependency> 
     <groupId>org.apache.qpid</groupId> 
     <artifactId>proton-j</artifactId> 
     <version>0.16.0</version> 
    </dependency>