2014-09-28 48 views
0

我在Heroku上推送了一個更新到我的應用程序,現在我收到了以下與應用程序崩潰相關的錯誤。如果你看看這個錯誤,你會發現它與S3Blobs.java有關。但是,我上次更新並未影響此文件,實際上也沒有影響任何Java代碼。最後一次更新是html,javascript和css文件。Play Framework 1.2.7 Heroku更新崩潰

是否有人熟悉這個錯誤,並且可能會導致它在Heroku上看起來無處可見。本地應用程序運行良好。

如果我在Heroku上回滾到以前版本的應用程序,應用程序仍然運行(再次回滾不影響S3Blobs.java)。

Heroku編譯我的Java代碼的方式是否改變了?

2014-09-27T22:24:13.874161 + 00:00應用程式[web.2]:〜_ _

2014-09-27T22:24:13.874166 + 00:00應用程式[幅。 2]:〜_ __ | | __ _ _ | | 2014-09-27T22:24:13.874167 + 00:00 app [web.2]:〜| '| | /'| || || 2014-09-27T22:24:13.874189 + 00:00 app [web.2]:〜|/| | \ | \() 2014-09-27T22:24:13.874190 + 00:00 app [web.2]:〜|| |/

2014-09-27T22:24:13.874192 + 00:00應用程式[web.2]:〜 2014-09-27T22:24:13.874193 + 00:00應用程式[web.2]:〜播放! 1.2.7, http://www.playframework.org 2014-09-27T22:24:13.874195 + 00:00 app [web.2]:〜framework ID is prod 2014-09-27T22:24:13.874196 + 00:00 app [web。 2]:〜2014-09-27T22:24:13.874197 + 00:00 app [web.2]:〜Ctrl + C至 stop 2014-09-27T22:24:13.874199 + 00:00 app [web.2] :〜 2014-09-27T22:24:13.623029 + 00:00 app [web.1]:22:24:13,622 INFO〜 連接到 jdbc:postgresql:// ec2-23-23-147-250。 compute-1.amazonaws.com:5582/d7p28cauibod8d?ssl=true & sslfactory = org.postgresql.ssl.NonValidatingFactory 2014-09-27T22:24:14.543346 + 00:00 heroku [web.2]:進程退出 狀態1 2014-09-27T22:24:14.553771 + 00:00 heroku [web.2]:狀態已從開始改爲 d 2014-09-27T22:24:14.807111 + 00:00 app [web.1]: 22:24:14,806 INFO〜Application'tfp_v2_fix'現在開始了! 2014-09-27T22:24:14.956075 + 00:00 app [web.1]: 2014-09-27T22:24:14.956085 + 00:00 app [web.1]:啓動S3Blobs 2014-09-27T22 :24:14.956088 + 00:00 app [web.1]:2014-09-27T22:24:16Z app [postgres.12036]:[OLIVE]無法從客戶端接收數據: 由對等方2014-09 -27T22:24:16Z app [postgres.12035]: [OLIVE]無法從客戶端接收數據:連接由對端重置 2014-09-27T22:24:16Z app [postgres.12034]:[OLIVE] could not收到 來自客戶端的數據:由對端重置的連接 2014-09-27T22:24:16.122974 + 00:00 app [web.1]:2014年9月27日22時24分16秒 +0000 [3 5] com.newrelic .agent.Agent INFO:New Relic Agent已關閉2014-09-27T22:24:16.116801 + 00:00 app [web.1]:22:24:16,11 5 錯誤〜2014-09-27T22:24:16.116807 + 00:00 app [web.1]: 2014-09-27T22:24:16.116810 + 00:00 app [web.1]:@ 6jk9a374i 2014- 09-27T22:24:16.116811 + 00:00 app [web.1]:作業期間出錯 執行(s3.S3Blobs)2014-09-27T22:24:16.116813 + 00:00 app [web.1]: 2014 -09-27T22:24:16.116815 + 00:00 app [web.1]:執行異常( /app/s3/S3Blobs.java在第32行左右)2014-09-27T22:24:16.116817 + 00:00 應用[網絡。1]:IllegalStateException發生:不支持的cookie規範: 默認2014-09-27T22:24:16.116818 + 00:00應用[web.1]: 2014-09-27T22:24:16.116820 + 00:00 app [web。 1]: play.exceptions.JavaExecutionException:不支持的cookie規範: 默認2014-09-27T22:24:16.116821 + 00:00應用[web.1]:在 play.jobs.Job.call(Job.java: 2014-09-27T22:24:16.116823 + 00:00 app [web.1] ]:導致:java.lang.IllegalStateException:不支持 cookie規範:默認2014-09-27T22:24:16.116826 + 00:00應用[web.1]:在 org.apache.http.cookie.CookieSpecRegistry.getCookieSpec (CookieSpecRegistry.java:110) 2014-09-27T22:24:16.116828 + 00:00 app [web.1 ]:at org.apache.http.cookie.CookieSpecRegistry $ 1.create(CookieSpecRegistry.java:163) 2014-09-27T22:24:16.116829 + 00:00 app [web.1]:at org.apache。 http.client.protocol.RequestAddCookies.process(RequestAddCookies.java:157) 2014-09-27T22:24:16.116831 + 00:00 app [web.1]:at org.apache.http.protocol.ImmutableHttpProcessor.process (ImmutableHttpProcessor.java:132) 2014-09-27T22:24:16.116833 + 00:00 app [web.1]:at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:166) 2014 -09-27T22:24:16.116834 + 00:00 app [web.1]:at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:485) 2014-09-27T22:24: 16.116835 + 00:00 app [web.1]:在 org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:878) 2014-09-27T22:24:16.116837 + 00:00 app [web.1]:at org.apache.http。 impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:84) 2014-09-27T22:24:16.116838 + 00:00 app [web.1]:at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:109) 2014-09-27T22:24:16.116839 + 00:00 app [web.1]:at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 2014-09-27T22:24:16.116840 + 00:00 app [web.1]:at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:268) 2014-09-27T22:24:16.799309+ 00:00 heroku [web.1]:用01退出進程狀態1 2014-09-27T22:24:16.809162 + 00:00 heroku [web.1]:狀態從開始改爲 2014-09-27T22:24:16.116842 + 00:00 app [web.1]: at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170) 2014-09-27T22:24:16.116843 + 00:00 app [web.1]:at com.amazonaws.services.s3。 AmazonS3Client.invoke(AmazonS3Client.java:2597) 2014-09-27T22:24:16.116845 + 00:00 app [web.1]:at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2569 ) 2014-09-27T22:24:16.116846 + 00:00 app [web.1]:at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:415) 2014-09-27T22:24 :16.116847 + 00:00應用[web.1]:在(AmazonS3Client.java:723) 2014-09-27T22:24:16.116849 + 00:00 app [web.1]:at s3.S3Blobs.doJob(S3Blobs。 java:32)2014-09-27T22:24:16.116850 + 00:00 app [web.1]:at play.jobs.Job.doJobWithResult(Job.java:50) 2014-09-27T22:24:16.116851 +00:00 app [web.1]:at play.jobs.Job.call(Job.java:146)2014-09-27T22:24:16.116853 + 00:00 app [web.1]:.. 。1更多2014-09-27T22:24:16.118780 + 00:00 app [web.1]: 線程「main」中的異常play.exceptions.JavaExecutionException: 不支持的cookie規範:默認2014-09-27T22:24: 16.118817 + 00:00 app [web.1]:在play.jobs.Job.call(Job.java:155) 2014-09-27T22:24:16.118846 + 00:00 app [web。1]:在Invocation.Job(播放!) 2014-09-27T22:24:16.118882 + 00:00 app [web.1]:由: java.lang.IllegalStateException:不支持的cookie規範:默認 2014- 09-27T22:24:16.118912 + 00:00應用程式[web.1]:在 org.apache.http.cookie.CookieSpecRegistry.getCookieSpec(CookieSpecRegistry.java:110) 2014-09-27T22:24:16.118942 + 00 :00應用程式[web.1]:在 org.apache.http.cookie.CookieSpecRegistry $ 1。創建(CookieSpecRegistry.java:163) 2014-09-27T22:24:16.118973 + 00:00應用程式[web.1] :at org.apache.http.client.protocol.RequestAddCookies.process(RequestAddCookies.java:157) 2014-09-27T22:24:16.118998 + 00:00 app [web.1]:at org.apache。 http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:13 2) 2014-09-27T22:24:16.119030 + 00:00 app [web.1]:at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:166) 2014-09-27T22: 24:16.119060 + 00:00 app [web.1]:at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:485) 2014-09-27T22:24:16.119091 + 00:00應用[web.1]:在 org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:878) 2014-09-27T22:24:16.119112 + 00:00應用程式[web.1]:在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:84) 2014-09-27T22:24:16.119145 + 00:00 app [web.1]:at org.apache.http .impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:109) 2014-09-27T22:24:16.119174 + 00:00 app [web.1]:at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 2014-09-27T22: 24:16.119206 + 00:00 app [web.1]:at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:268) 2014-09-27T22:24:16.119227 + 00:00 app [web。 1]:at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170) 2014-09-27T22:24:16.119258 + 00:00 app [web.1]:at com.amazonaws.services。 s3.AmazonS3Client.invoke(AmazonS3Client.java:2597) 2014-09-27T22:24:16.119288 + 00:00 app [web.1]:at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java :2569) 2014-09-27T22:24:16.119317 + 00 :00應用程式[web.1]:在 com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:415) 2014-09-27T22:24:16.119342 + 00:00應用程式[web.1]: at com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:723) 2014-09-27T22:24:16.119374 + 00:00 app [web.1]:at s3.S3Blobs.doJob(S3Blobs的.java:32)2014-09-27T22:24:16.119404 + 00:00 應用程式[web.1]:在play.jobs.Job.doJobWithResult(Job.java:50) 2014-09-27T22:24: 16 + 00:00 app [heroku-postgres]: source = HEROKUPOSTGRESQL_OLIVE sample#current_transaction = 1953 sample#db_size = 6842552bytes sample#tables = 1 sample#active-connections = 5 sample#waiting-connections = 0 sample# index-cache-hit-rate = 0.97895 sample#table-cache-hit-rate = 0.99444 sample#load-avg-1m = 0.535 sample#load-avg-5m = 0.375 sample#load-avg-15m = 0.285 sample#read-iops = 0 sample# write-iops = 20.195 sample#memory-total = 15405616kB sample#memory-free = 243784kB sample#memory-cached = 14421060kB sample#memory-postgres = 253500kB 2014-09-27T22:24:16.119434 + 00:00 app [web.1]:在play.jobs.Job.call(Job.java:146) 2014-09-27T22:24:16.119459 + 00:00應用程式[web.1]:...... 1更 2014- 09-27T22:24:16.121017 + 00:00 app [web.1]:2014年9月27日22時24分16秒 +0000 [3 5] com.newrelic.agent。代理INFO:JVM正在關閉

回答

1

Heroku每次將應用程序推送到它們時會同步您的dependencies.yml文件。我的一個依賴項最終被淘汰,而且heroku自動獲取了該文件的新版本,這反過來打破了亞馬遜的依賴關係。將我的亞馬遜升級到最新版本最終解決了問題。

我幾周沒有碰到我的dependenies.yml文件,也沒有運行「play deps --sync」幾周,所以沒有想到在我的本地機器上看。

+0

這個技巧保存了我的項目!我使用的是舊版本的亞馬遜sdk,在我更新了我的dependencies.yml文件以使用亞馬遜sdk 1.8而不是1.3一切正常。 – user1187534 2014-10-03 10:16:45

1

此處同樣的問題(「IllegalStateException發生:不支持的cookie規範:默認」),甚至沒有在Play框架或Heroku中,但在經典的Java Web應用程序(Mifos開源小額貸款平臺)中,並且通過升級解決從v1.7.2到最新的v2.3.3的其他可靠的測試框架(可能還有一些隱含的傳遞依賴關係,它們可能是比其他人更重要的根本原因 - 也許是來自v4的org.apache.httpcomponents httpclient的變化.2.3到目前最新的v4.3.5) - 顯然有些版本不匹配是造成這種錯誤的根本原因。

0

org.apache.httpcomponents httpclient似乎是我的根本原因。

版本4.3.5之後的任何內容都會在使用它的庫中導致此錯誤(並且尚未準備好),因此請檢查您擁有的版本。

0

Apache httpclient 4.3.6工作正常,請使用此版本。