java—在oracle数据库中使用kafka producer

9rygscc1  于 2021-06-08  发布在  Kafka
关注(0)|答案(0)|浏览(249)

我正在尝试使用自定义java类将来自oracle的消息直接发布到kafka代理,因为我在oracle中上载了所需的库,并使用oracle function/procedure调用java函数。基本的java函数工作正常,但kafka正在初始化并用于抛出未捕获异常的函数。即使我把整个函数体放在try-catch块中,但仍然没有得到定制的异常作为消息。
我有oracle 12c,它有jvm版本1.8。
此消息在java函数调用时在oracle sql提示符上弹出(java.lang.noclassdeffound错误)。
我为我的自定义类创建了一个jar文件,并将其与受人尊敬的库一起上传到oracledb。我用下面的命令上传了库文件。

loadjava -u <user>/<Password>@DB -resolve <library>.jar

请告诉我如何使Kafka生产者初始化,并开始发送消息,从甲骨文内部
如何调试oracledb中加载的java函数。
我的自定义类如下所示

public class KafkaPublisher { 
static ProducerRecord<String, String> PR = null; 
static Producer<String, String> producer = null; 
static Properties prop = new Properties(); 

public static void init() { 
prop.put("bootstrap.servers", "111.11.11.11:9092"); 
prop.put("acks", "1"); 
prop.put("retries", "0"); 
prop.put("batch.size", "16384"); 
prop.put("linger.ms", "1"); 
prop.put("buffer.memory", "33554432"); 
prop.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
prop.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 

} 

public static String push(String data) { 
String response = "No responce"; 
init(); 
try { 
producer = new KafkaProducer<String, String>(prop); 
PR = new ProducerRecord<String, String>("topic1", data); 
Future<RecordMetadata> future = producer.send(PR); 
RecordMetadata rMetaData = future.get(); 
response = "Current Offset: " + rMetaData.offset(); 
} catch (Exception e) { 
response = "Message: " + e.getMessage() + " Cause: " + e.getCause(); 
} 
return response; 
} 

public static String getProperties(String msg) { 
return "My message: " + msg + prop.toString(); 
} 
}

函数getproperties(string msg)工作正常,但函数push(string data)不工作。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题