Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вылезает java.lang.IllegalAccessError. А все вроде правильно. / 8 сообщений из 8, страница 1 из 1
12.02.2007, 20:23:30
    #34325278
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
Есть класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 package  org.apache.log4j.net;

 public   class  JMSAppender  extends  AppenderSkeleton {
...
TopicSession topicSession;
....
  /**
     This method called by {@link AppenderSkeleton#doAppend} method to
     do most of the real appending work.  */
   public   void  append(LoggingEvent event) {
     if (!checkEntryConditions()) {
       return ;
    }

     try  {
      ObjectMessage msg = topicSession.createObjectMessage();
       if (locationInfo) {
	event.getLocationInformation();
      }
      msg.setObject(event);
      topicPublisher.publish(msg);
    }  catch (Exception e) {
      errorHandler.error("Could not publish message in JMSAppender ["+name+"].", e,
			 ErrorCode.GENERIC_FAILURE);
    }
  }
...
}

Делаю свой класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 package  org.apache.log4j.net;

 public   class  IAOMJmsAppender  extends  JMSAppender {
...
     public   void  append( LoggingEvent event ) {
         if  ( !checkEntryConditions() ) {
             return ;
        }

         try  {
            ObjectMessage msg = topicSession.createObjectMessage(); // тут падает
       ....
    }

...
}


stacktrace
java.lang.IllegalAccessError: tried to access field org.apache.log4j.net.JMSAppender.topicSession from class org.apache.log4j.net.IAOMJmsAppender
at org.apache.log4j.net.IAOMJmsAppender.append(IAOMJmsAppender.java:25)



Проект компилируется и собирается 2-ым мавеном без всяких ошибок, деплоится на JBoss тоже без проблем. И в рантайме вот такая беда. Кто-нибудь знает в чем проблема.
...
Рейтинг: 0 / 0
13.02.2007, 07:43:19
    #34325759
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
Класс точно лежит в том же package'е ?
Поменяйте в своем классе строку
Код: plaintext
1.
ObjectMessage msg = topicSession.createObjectMessage();

на

Код: plaintext
1.
ObjectMessage msg = getTopicSession.createObjectMessage();
...
Рейтинг: 0 / 0
13.02.2007, 07:44:05
    #34325760
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
Извиняюсь, на

Код: plaintext
1.
ObjectMessage msg = getTopicSession().createObjectMessage();
...
Рейтинг: 0 / 0
13.02.2007, 14:01:30
    #34327109
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
...
Рейтинг: 0 / 0
13.02.2007, 14:03:47
    #34327117
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
Дык я тоже самое написал :)
...
Рейтинг: 0 / 0
13.02.2007, 14:10:04
    #34327136
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
^ozzy^Дык я тоже самое написал :)
Что тоже самое? package у них одинаковый.
...
Рейтинг: 0 / 0
13.02.2007, 14:22:17
    #34327197
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
Не до конца ответ сформулировал. Подразумевалось.

А вообще, считаю, что воспользоваться get'ером - все равно более разумно. Тем более, что он есть и он public :)
...
Рейтинг: 0 / 0
13.02.2007, 16:45:34
    #34327765
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вылезает java.lang.IllegalAccessError. А все вроде правильно.
^ozzy^
А вообще, считаю, что воспользоваться get'ером - все равно более разумно. Тем более, что он есть и он public :)

Дело в том, что нету этого метода в верси 1.2.8 библиотеки log4j. И именно эту версию использует JBoss 4.0.5. Так что разумно то оно разумно, но не реально :) Пришлось наследоваться от AppenderSkeleton и тупо копипастить всю логику из класса JMSAppender, вот вам и ООП.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вылезает java.lang.IllegalAccessError. А все вроде правильно. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]