csvファイルの読み込みに失敗しているようなのですが、解決策が分かりません。

196 views
Skip to first unread message

O kazu

unread,
Jun 19, 2013, 4:53:19 AM6/19/13
to twitt...@googlegroups.com
こんにちは。

今現在、おそらくなんですがcsvファイルの読み込みに失敗しています。そう考えたのは以下のようなエラーが発生しているからです。
自分なりに原因を調べたんですがいまいち解決方法が分かりません。お手数ですが何か解決方法を教えていただけると助かります。




java.security.AccessControlException: access denied ("java.io.FilePermission" "ここはcsvファイルとファイルまでの絶対パスが入ってます" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:301)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at jp.ckc.AutoClassReply.reply(AutoClassReply.java:46)
at jp.ckc.TestServlet.doGet(TestServlet.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectRequest(DevAppServerServersFilter.java:369)
at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectServerRequest(DevAppServerServersFilter.java:352)
at com.google.appengine.tools.development.DevAppServerServersFilter.doFilter(DevAppServerServersFilter.java:115)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:438)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Yamamoto Yusuke

unread,
Jun 19, 2013, 5:03:42 AM6/19/13
to twitt...@googlegroups.com
Google App Engineはファイルシステムへのアクセスを許していないためです。
-- 
山本 裕介
@yusuke

--
Twitter4J の最新情報をフォロー: http://twitter.com/t4j_news
現在のバージョン - 安定: 3.0.3, 開発中: 3.0.4-SNAPSHOT
http://jira.twitter4j.org/issues/?filter=10030
バグトラッキング: http://twitter4j.org/jira/browse/TFJ
 
このメールは次の Google グループの参加者に送られています: Twitter4J J
このグループにメールで投稿: twitt...@googlegroups.com
このグループから退会する: http://groups.google.com/group/twitter4j-j?hl=ja
---
このメールは Google グループのグループ「Twitter4J J」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、twitter4j-j...@googlegroups.com にメールを送信します。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

O kazu

unread,
Jun 19, 2013, 5:10:05 AM6/19/13
to twitt...@googlegroups.com

返信、ありがとうございます!
それでは、ファイルの代わりに成り得るものはあるのでしょうか?もしくはGoogle App Engineがファイルのアクセスを許可する方法はありますか?


2013年6月19日水曜日 18時03分42秒 UTC+9 yus...@mac.com:
Google App Engineはファイルシステムへのアクセスを許していないためです。
このグループから退会し、メールの受信を停止するには、twitter4j-j+unsubscribe@googlegroups.com にメールを送信します。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

Yamamoto Yusuke

unread,
Jun 19, 2013, 11:32:57 AM6/19/13
to twitt...@googlegroups.com
Google App Engineはスケーラビリティを確保するために通常のサーブレットコンテナとの互換性を捨てています。
その一環としてファイルシステムへのアクセスはJavaがそなえるセキュリティモデルで禁止しています。これはGAE上のアプリであればJavaでもPythonでもPhpでもGoでも同じです。
データを補完するにはDatastore APIなどを使うことになると思います。

使い方がわからなければApp Engineのメーリングリストなどで聞くことをお勧めします。

-- 
山本 裕介
@yusuke

このグループから退会し、メールの受信を停止するには、twitter4j-j...@googlegroups.com にメールを送信します。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

O kazu

unread,
Jun 19, 2013, 12:46:49 PM6/19/13
to twitt...@googlegroups.com

丁寧な説明をしていただきありがとうございます。
自分でも少し調べてみたのですが、Datastore以外にGoogle Cloud Storageというものを見つけました。ただ、どちらの方が開発する際にシンプルにファイルの読み込み、書き込みを行い易いかどうかが分かりません。今のところ調べた感じではjavaのソースを書く感覚で使えるGoogle Cloud Storageの方が使い易そうと感じたのですが、どちらがおすすめでしょうか?




2013年6月20日木曜日 0時32分57秒 UTC+9 yus...@mac.com:

O Kuzu

unread,
Jun 19, 2013, 12:53:54 PM6/19/13
to twitt...@googlegroups.com
ここはTwitter4Jのグループです。
AppEngineの話題はAppEngineのグループでやってください。


2013年6月20日木曜日 1時46分49秒 UTC+9 O kazu:

Yamamoto Yusuke

unread,
Jun 19, 2013, 9:34:11 PM6/19/13
to twitt...@googlegroups.com
たしかに本件は「結果的には」Twitter4Jとは直接関係ない話題になります。(わかる人がみれば関係ないと最初からわかりますが)

スタックトレースやエラーメッセージをみても何が原因なのかを切り分けるのはそれなりのスキルを要します。
Twitter4Jが原因なのでは?と投稿したのではないかと思いますので、今後もわからないことがあれば気軽にお尋ねください。

最初に貼り付けて頂いたスタックトレースは原因究明に大変役立つ情報でした!

Twitter4Jのサイトを見てもわからない、ググってみても(そもそも何を言っているのか)わからないと言うときはウンウン頭を抱えず是非、気軽に投稿してください。

Twitter4Jに関係あろうがなかろうがやりたいことが実現できるようガイドしていければと思っています。
もちろんTwitter4Jに関係がなく、長引きそうな場合は(本スレッドでも最初にそうしましたが)最適と思われる問い合わせ場所、詳しいと思われる方を紹介します。
-- 
山本 裕介
@yusuke

このグループから退会し、メールの受信を停止するには、twitter4j-j...@googlegroups.com にメールを送信します。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

Yamamoto Yusuke

unread,
Jun 19, 2013, 9:43:47 PM6/19/13
to twitt...@googlegroups.com
再度案内いたしますが、App Engine周りについてはは詳しい人が集まっているこちらのメーリングリストで聞いてみるときっと丁寧に教えてくれます。

またTwitter4Jに絡んでいそうな例外が出ましたら新しいメールタイトルでお尋ねください。
(結局Twitter4Jに絡んでいないとしても門前払いするようなことはありませんのでお気軽に!)
-- 
山本 裕介
@yusuke

O kazu

unread,
Jun 20, 2013, 4:25:52 AM6/20/13
to twitt...@googlegroups.com, meiw...@gmail.com
すみませんでした。確かにTwitter4jとは関係の無い質問になってしまいました。
以後、気を付けます。



2013年6月20日木曜日 1時53分54秒 UTC+9 O Kuzu:

O kazu

unread,
Jun 20, 2013, 4:34:46 AM6/20/13
to twitt...@googlegroups.com
知識が浅いせいで誤解を招いたみたいですみませんでした。
それでも、丁寧にお答えいただきとても助かりました。ありかとうございました!
次に質問する機会が有れば、グループに則した質問をするように気をつけます。



2013年6月20日木曜日 10時43分47秒 UTC+9 yus...@mac.com:

Yusuke Yamamoto

unread,
Jun 20, 2013, 4:38:56 AM6/20/13
to twitt...@googlegroups.com
いえいえ、おきになさらずに。
煮詰まる前にサクッと聞いてみてください!
-- 
山本 裕介
@yusuke
http://samuraism.jp/
Sent from my iPhone5
このグループから退会し、メールの受信を停止するには、twitter4j-j...@googlegroups.com にメールを送信します。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

O kazu

unread,
Jun 20, 2013, 5:01:44 AM6/20/13
to twitt...@googlegroups.com
はい!ありがとうございます!
今現在、記載して頂いたグループで質問しています。色々とありがとうございました。



2013年6月20日木曜日 17時38分56秒 UTC+9 yus...@mac.com:
Reply all
Reply to author
Forward
0 new messages