forum.bitel.ru
http://forum.bitel.ru/

java.lang.NoClassDefFoundError:
http://forum.bitel.ru/viewtopic.php?f=19&t=10953
Страница 1 из 1

Автор:  Ping333 [ 03 окт 2015, 00:21 ]
Заголовок сообщения:  java.lang.NoClassDefFoundError:

Добрый день!
Подскажите что не так сделал. пробуем переехать на 6.2 с 6.0.
Код:
...
public class Test
extends HttpServlet
//extends CommonExecutor
{   
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
   {
PrintWriter out = response.getWriter();
out.println("Hello, World! ");
String date_check = (TimeUtils.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss.SSS"))+"+07:00";
System.out.println("date_check " +date_check);// data
}
}

в логе ошибка java.lang.NoClassDefFoundError: bitel/billing/common/TimeUtils

если раскоментировать CommonExecutor и закоментить HttpServlet
в логе ошибка java.lang.NoClassDefFoundError: bitel/billing/server/CommonExecutor

апдейте поставлены, kernel.jar есть. Centos 7.
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.8.0_45] /usr/java/jdk1.8.0_45/jre

хотя на 6.0 этот сервелет работает. (ubuntu12)
может что не так установилось

Автор:  nikav80 [ 03 окт 2015, 01:35 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

не найден класс bitel.billing.common.TimeUtils

Автор:  Ping333 [ 03 окт 2015, 11:21 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Спасибо.сразу все понятно стало. Я то думаю в чем проблема...а тут класс не найден. Эти классы в kernel.jar есть.

Автор:  dimOn [ 03 окт 2015, 13:24 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

что это вообще за код? вы сервлет пишете отдельно и отдельно собираете в jar или что?

Автор:  dimOn [ 03 окт 2015, 13:27 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

классы эти в 6.2 есть. значит, вы при запуске вашего кода просто в classpath не включаете kernel.jar
но как запускаете код и где всё это вам пишет - непонятно.
проверьте

Автор:  Ping333 [ 03 окт 2015, 14:52 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Да именно так. В нетбинс пишу сервлет.ну как пишу..переношу с 6.0 на 6.2.сделал jar, скопировал в либы сервера. Примапил его. Вызываю с браузера. В server.out смотрю лог выполнения при вызове сервлета. Делаю вроде все также как на 6.0

Автор:  dimOn [ 03 окт 2015, 15:08 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

изучайте лаунчеры на предмет classpath, проблема 100% в том, что kernel.jar туда не попадает
"в либы сервера" - это куда именно? кто эту jar цепляет? как именно примапили? сами в xml прописали?

Автор:  dimOn [ 03 окт 2015, 15:10 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

ещё в скриптах запуска родных учтите, что напрямую каталоги не везде и не все подключаются в classpath, а грузятся через bootstrap.
потом наоборот иногда вносили нужные, потому что сторонние либы не могли грузить напрямую то что лежит в ext, хотя некоторые пытались.
возможно, у вас какой-то подобный случай.

Автор:  Ping333 [ 03 окт 2015, 15:15 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Сам в xml прописал.кладу в либы ext.вообще во все папки пробовал. Сегодня попробую ещё раз с учётом ваших рекомендаций.спасибо

Автор:  Ping333 [ 03 окт 2015, 20:14 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Решено. Спасибо.
Код:
напрямую каталоги не везде и не все подключаются в classpath

помогло.
один вопрос остался, при обновлении сервера, web.xml перетирается , возможно сделать чтобы изменения сделанные сохранялись? или каждый раз нужно вносить изменения

Автор:  Phricker [ 03 окт 2015, 21:07 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

попробуйте web.xml из сборки переименовать в web.xml.orig.
В таком случае, при обновлении ваш web.xml перезатрется только в том случае если были изменения в сборке.

Автор:  Ping333 [ 03 окт 2015, 21:11 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

попробую. спасибо

Автор:  Phricker [ 03 окт 2015, 21:11 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

И он не совсем перезатрется. Переименуется в web.xml.bak.<TIMESTAMP>
так что потом просто web.xml.orig меняете на тот который пришел, и возвращаете ваш

Автор:  Phricker [ 03 окт 2015, 21:17 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Ну или так

Автор:  Ping333 [ 03 окт 2015, 21:27 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

спасибо.

Автор:  dimOn [ 04 окт 2015, 19:50 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Ping333 писал(а):
Сам в xml прописал.кладу в либы ext.вообще во все папки пробовал. Сегодня попробую ещё раз с учётом ваших рекомендаций.спасибо

ext в новых версиях тоже напрямую прописывается там. если вы клали в ext должно было вроде как работать.
что вы в итоге исправили то?

Автор:  Ping333 [ 04 окт 2015, 20:49 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

jar положил в app. Сделал еще раз апдейт. Ошибка более не повторяется.

Автор:  Ping333 [ 05 окт 2015, 00:37 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

Можно еще спрошу. темы плодить не буду.
пытаюсь сделать платеж, как писал старк тут и в вики тут
Код:
try{   
            ServerContext context = ServerContext.get(); 
                        PaymentService paymentService = context.getService( PaymentService.class, 0 );// на этом пункте вылетает ошибка
                        Payment payment = new Payment();
                        payment.setContractId(2472) ;
                        payment.setComment("Оплата через -ID-....");
                        payment.setSum( new BigDecimal(Float.parseFloat("3434")));
         payment.setDate(date) ;
         payment.setUserId(0) ;
         payment.setTypeId(3) ;
         payment.setId(-1) ;
                        payment.setTimeChange(date);
                        //java.util.List<java.lang.Integer> pmt =
                                paymentService.paymentUpdate(payment, null);
            }


в логе ошибка
10-05/01:25:14 ERROR [http-bio-0.0.0.0-8080-exec-3] [test] - Servlet.service() for servlet [test] in context with path [/bgbilling] threw exception
java.lang.NullPointerException
at Test.doGet(Test.java:33)

подскажите что я сделал не так?

Автор:  dimOn [ 05 окт 2015, 11:18 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

context вероятно null потому что в самописном сервлете не будет никакого контекста

Автор:  Ping333 [ 05 окт 2015, 14:29 ]
Заголовок сообщения:  Re: java.lang.NoClassDefFoundError:

спасибо. попробую как раньше

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/