Интеграция с Jruby log4j - PullRequest
       2

Интеграция с Jruby log4j

1 голос
/ 12 октября 2010

В настоящее время я работаю над интеграцией приложения Java General Architecture For Text Engineering (GATE) с приложением Rails, использующим архитектуру JRuby.Когда мы работали над интеграцией JRuby с log4j, я получаю следующую ошибку:

0 [main] DEBUG Main.class  - Hello world
gate/Gate.java:80:in `<clinit>': java.lang.NoClassDefFoundError: org/apache/log4

j / Logger (NativeException) из gateapp / Main.java: 86: в `main 'из test.rb: 12

test.rb - это имя программы ruby.

Я попытался импортировать все библиотеки apache log4j и включил файл класса в файл test.rb.

Когда язапустить программу Java в одиночку, она работает нормально.Но когда я генерирую файл jar и включаю их в файл Ruby (test.rb), я получаю эту ошибку

java.lang.NoClassDefFoundError: org/apache/log4j/Logger (NativeException) problem is occuring. How to deal with this problem ?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2013

Вот мой конфиг, чтобы настроить его с помощью couchbase Java SDK

include Java

def setup_log4j
  java::lang.System.setProperty("net.spy.log.LoggerImpl", "net.spy.memcached.compat.log.Log4JLogger")

  fa = Java::OrgApacheLog4j::FileAppender.new();
  fa.setName("FileLogger");

  fa.setFile("./log/#{Rails.env}.log");
  fa.setLayout(Java::OrgApacheLog4j::PatternLayout.new("%d %-5p [%c{1}] %m%n"));
  fa.setThreshold(Java::OrgApacheLog4j::Level::INFO);
  fa.setAppend(true);
  fa.activateOptions();
  Java::OrgApacheLog4j::Logger.getRootLogger().addAppender(fa)
end

Просто знайте, что мне раньше требовался файл lo4j.jar.
Стоит отметить, что существует проект с именем log4jruby .

0 голосов
/ 12 октября 2010

Необходимо убедиться, что файл log4j JAR находится в вашем пути к классам. Один из способов сделать это - установить переменную CLASSPATH в вашей среде. Другой способ - вызвать require в вашем коде ruby, например

  require "/some/path/MyStuff.jar" 
...