Twitter4J Glassfish v3 - PullRequest
       2

Twitter4J Glassfish v3

0 голосов
/ 04 апреля 2011

я пытаюсь создать веб-приложение, которое подключается к твиттеру.Я пытаюсь получить информацию из общедоступной временной шкалы Twitter, и я использую библиотеку twitter4j.

При выполнении кода Java для получения информации все в порядке и работает.однако когда я вызываю метод для jsp, это показывает это.

SEVERE: Exception while loading the app
org.glassfish.deployment.common.DeploymentException: java.lang.NoClassDefFoundError: Lorg/apache/log/Logger;
        at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:167)
        at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125)
        at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
...

Кто-нибудь может мне помочь, почему я получаю эту ошибку?Я гуглю его, но, похоже, не могу найти правильного решения :(. Я не вижу ошибок в моем проекте.

Что я делал до добавления twitter4j: - добавление библиотеки twitter4j в веб-приложение -> ошибка нужна регистратору чего-то, и ядобавить библиотеку логгеров - после этого возникает ошибка об org.apache.avalon, и после добавления библиотеки она показывает это сообщение.

SERVER: GLASSFISH V3 IDE: NETBEANS 6.9.1 JAVA EE 6

Спасибо: D

уже включает org.apache.log.logger из ответа andyb, но это вызовет еще одну ошибку

SEVERE: Exception while loading the app
org.glassfish.deployment.common.DeploymentException: java.lang.NoClassDefFoundError: com/sun/jdmk/comm/CommunicatorServer
        at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:167)
        at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125)
        at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)

Я уже добавил org.apache.log.logger из этого jar http://www.findjar.com/jar/logkit/logkit/2.0/logkit-2.0.jar.html

это правильный?

я получаю больше ошибок, когда я добавляю jar, на самом деле, что является правильным, чтобы добавить twitter4j в glassfish v3?нужно добавить тот файл POM.xml, который дал andyb?

1 Ответ

0 голосов
/ 04 апреля 2011

Похоже, WeldDeployer пытается что-то записать в строке 167, но библиотека журналирования, от которой он зависит, отсутствует.Ошибка, которую вы видите - java.lang.NoClassDefFoundError - это среда выполнения Java, сообщающая, что отсутствует класс.

Отсутствующий класс называется org.apache.log.Logger.Вам нужно найти .jar, который содержит этот класс, и добавить его как зависимость вашего проекта. ← Не делайте этого - org.apache.log.logger был удален!

Я полагаю, вы не используетеMaven, иначе я бы надеялся, что зависимости будут добавлены автоматически.Однако, если вы проверяете файл Twitter4j POM , существует 4 зависимости: junit, slf4j-api, commons-logging-api и log4j.

Изменить: IЯ не был уверен, использовали ли вы Maven для создания своего проекта.Если да, то как вы добавили twitter4j в свой проект?Вы добавили следующее project POM?Если так, то зависимости должны были автоматически загружаться Maven.На сайте Twitter4j есть инструкции по добавлению библиотеки в POM.

<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-core</artifactId>
    <version>2.2.1</version>
</dependency>
...