2011-04-04 88 views
0

即時通訊試圖使連接到Twitter的Web應用程序。 我試圖從公共時間線Twitter獲取信息,我使用twitter4j庫。Twitter4J Glassfish v3

在執行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庫到web應用程序 - >錯誤需要記錄器的東西,我添加記錄器庫 - 在此之後,有大約org.apache.avalon錯誤和i之後添加庫它顯示此消息

SERVER:GLASSFISH V3 IDE:NETBEANS 6.9.1 JAVA EE 6

謝謝:D

已經包括andyb答案org.apache.log.logger但它會導致另一個錯誤

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) 

我已經從這個罐子http://www.findjar.com/jar/logkit/logkit/2.0/logkit-2.0.jar.html

添加org.apache.log.logger是正確的一?

當我添加jar時,即時獲取更多錯誤,實際上twitter4j添加到glassfish v3的正確方法是什麼? 我需要添加那個andyb給出的POM.xml嗎?

回答

0

看起來像WeldDeployer正在嘗試記錄第167行的東西,但它所依賴的日誌庫缺失。您看到的錯誤 - java.lang.NoClassDefFoundError - 是Java運行時告訴您它缺少一個類。

缺失的類叫做 org.apache.log.Logger。您需要找到包含此類的.jar,並將其添加爲項目的依賴項。 ←不要這樣做 - org.apache.log.logger已經退役了!

我想你沒有使用Maven,否則我會希望依賴會自動添加。但是,如果您檢查Twitter4j POM file有4個依賴項:junit,slf4j-api,commons-logging-apilog4j

編輯:我不確定您是否使用Maven構建您的項目。如果你是,那麼你是如何將twitter4j添加到你的項目中的?您是否添加了以下內容項目 POM?如果是這樣,那麼這個依賴關係應該已經被Maven自動下載了。 Twitter4j網站有關於如何將庫添加到POM的說明。

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

謝謝你的答案,但我仍然有另一個錯誤後,我發現org.apache.log.logger – 2011-04-04 12:46:26

+0

你添加了哪個日誌庫?看起來你已經添加了一箇舊的日誌庫。 Apache Avalon幾年前被Excalibur(和其他一些項目)所取代。即使神劍現已關閉!你有沒有嘗試添加log4j?從你的問題來看,你不清楚你添加了哪個日誌庫。 – andyb 2011-04-04 12:52:35

+0

哎呀我還沒有完成編輯我的評論。 ^^抱歉。我已經在上面的問題中更新了狀態。 im使用org.apache.log4j_1.2.13.v200806030600.jar – 2011-04-04 12:54:17