Исключение в конфигурации PlainText Pepper-Box для Jsons большого размера - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь отправить Json большого размера через конфигурацию простого текста Pepper-Box и получаю исключение:

java.lang.ClassFormatError: Truncated class file
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_172]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_172]
at java.lang.ClassLoader.defineClass(ClassLoader.java:642) ~[?:1.8.0_172]
at com.gslab.pepper.input.compile.DynamicClassLoader.findClass(DynamicClassLoader.java:59) ~[pepper-box-1.0.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_172]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_172]
at com.gslab.pepper.input.compile.InMemoryJavaCompiler.compileSchemaClass(InMemoryJavaCompiler.java:46) ~[pepper-box-1.0.jar:?]
at com.gslab.pepper.input.SchemaTranslator.getPlainTextMsgIterator(SchemaTranslator.java:47) ~[pepper-box-1.0.jar:?]
at com.gslab.pepper.input.SchemaProcessor.getPlainTextMessageIterator(SchemaProcessor.java:36) ~[pepper-box-1.0.jar:?]
at com.gslab.pepper.loadgen.impl.PlaintTextLoadGenerator.<init>(PlaintTextLoadGenerator.java:34) ~[pepper-box-1.0.jar:?]
at com.gslab.pepper.config.plaintext.PlainTextConfigElement.iterationStart(PlainTextConfigElement.java:53) ~[pepper-box-1.0.jar:?]
at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:399) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:391) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.control.GenericController.next(GenericController.java:160) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.control.LoopController.next(LoopController.java:135) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:92) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255) ~[ApacheJMeter_core.jar:5.2.1]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_172]

1 Ответ

0 голосов
/ 26 мая 2020
  1. Если проблема воспроизводится с меньшим JSON - это может быть случай, когда JSON синтаксис конфликтует с Функции шаблона схемы
  2. Если проблема воспроизводится с large JSON - вы можете поднять проблему в проекте Pepper-Box - Kafka Load Generator . А пока вы можете отправлять сообщения брокерам Kafka, используя JSR223 Sampler и Groovy, пример кода будет примерно таким:

    import org.apache.kafka.clients.producer.KafkaProducer
    import org.apache.kafka.clients.producer.ProducerRecord
    
    def props = new Properties();
    props.put("bootstrap.servers", "localhost:9092");
    props.put("acks", "all");
    props.put("retries", 0);
    props.put("batch.size", 16384);
    props.put("linger.ms", 1);
    props.put("buffer.memory", 33554432);
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    
    def producer = new KafkaProducer<>(props);
    int partition = 5;
    1.upto(100, { counter ->
        producer.send(new ProducerRecord<>("your-topic", partition, "foo-" + counter, new File('/path/to/your/big.json').text);
    })
    
    producer.close();
    

Дополнительная информация:

...