2014-09-12 126 views
2

我正在開發一個使用Wildfly(和maven)的Java Web應用程序,我想用https://logentries.com/doc/java/#logback中描述的Logback來使用logentry。Logentries + AWS兼容性

我也使用AWS SDK進行某些操作,它似乎是logentries和AWS SDK之間的不兼容。

如果我刪除aws-java-sdk(1.7.11),logentries就像一個魅力。但只要我添加它,我收到以下錯誤:

14:36:25,329 INFO [stdout] (default task-32) DEBUG: JavaMail version 1.5.1 
14:36:25,330 INFO [stdout] (default task-32) DEBUG: URL vfs:/home/lucasferreira/Desenvolvimento/2.Servidores/wildfly-8.1.0.Final/standalone/deployments/server-1.0-SNAPSHOT.war/WEB-INF/lib/aws-java-sdk-1.7.11.jar/META-INF/javamail.providers 
14:36:25,330 INFO [stdout] (default task-32) DEBUG: Bad provider entry: 
14:36:25,330 INFO [stdout] (default task-32) DEBUG: successfully loaded resource: vfs:/home/lucasferreira/Desenvolvimento/2.Servidores/wildfly-8.1.0.Final/standalone/deployments/server-1.0-SNAPSHOT.war/WEB-INF/lib/aws-java-sdk-1.7.11.jar/META-INF/javamail.providers 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: Tables of loaded providers 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], com.amazonaws.services.simpleemail.AWSJavaMailTransport=javax.mail.Provider[TRANSPORT,aws,com.amazonaws.services.simpleemail.AWSJavaMailTransport,Amazon Web Services LLC]} 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], aws=javax.mail.Provider[TRANSPORT,aws,com.amazonaws.services.simpleemail.AWSJavaMailTransport,Amazon Web Services LLC]} 
14:36:25,332 INFO [stdout] (default task-32) DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 

14:36:25,339 INFO [stdout] (default task-32) 14:36:25.338 [default task-32] INFO logentries - Test message 

而且我的logentries帳戶中沒有收到該消息。

經過一番研究,我發現亞馬遜的SDK與javamail配置混淆,過去有一些問題(http://www.thebuzzmedia.com/javamail-smtp-on-localhost-fails-with-amazon-aws-sdk-in-classpath/)。 有沒有我可以使用的解決方法或修復方法?這是AWS SDK問題還是logentries問題?

回答

0

我從Logentries支持工程師回答:


斯蒂芬·海因斯(Logentries) 09月22日12:04

嘿盧卡斯,

雖然我們深入瞭解一下這個問題我們可以做以下解決方法。我們可以登錄到一個文件並使用我們的代理(https://logentries.com/doc/agent/)將日誌發送到Logentry。否則,我們可以做的就是使用另一個API將Logs發送給Logentries。這個API目前沒有記錄,但是如果你想嘗試它,那麼你可以效仿的榜樣(這裏https://github.com/BrightcoveOS/Diamond/blob/master/src/diamond/handler/logentries_diamond.py#L91看)

基本上你發送POST請求到使用您的登錄憑證作爲URL的一部分給定的地址。然後,您需要確定您的日誌包含在包含字段「events:」的JSON對象中。如果你不這樣做,你會得到一個錯誤(但日誌仍然會通過)。

問候, 斯蒂芬

支持工程師


郵政解決方案通過增加信息到事件領域工作。

發個帖子https://js.logentries.com/v1/logs/logentries_TOKEN

具有以下JSON在身:

{ 
    "event":{ 
     "key":"value", 
     "key2":"value2", 
     "key3" : "value3" 
    } 
    } 
1

假設AWS分析是正確的(聽起來是正確的),您應該能夠通過明確詢問「smtp」傳輸並使用它來發送消息來解決此問題。 This JavaMail FAQ entry顯示了基本的方法。

+0

與解決方案的問題是,我不直接調用jamail。 我調用一個配置爲與logentries一起工作的日誌功能,並且內部logentry使用javamail將我的數據發送到他們的服務器。所以我沒有訪問該代碼來明確要求smtp。 – 2014-09-15 12:20:17

+0

只是補充說,使用我自己做了一個jamail功能與解決方案的一個概念測試做了工作,從而證實該假說認爲,AWS沒有真正用JavaMail配置惹雖然他們應該已經固定它通過他們的更新日誌來看。 – 2014-09-15 12:22:46