strutsでのフィルアップロードについて

323 views
Skip to first unread message

takayuki

unread,
Jun 8, 2010, 2:02:24 AM6/8/10
to Google-App-Engine-Japan
初めましてtakayukiです。

環境
eclipse3.5
struts 1.3.10

プログラム初心者で、今現在GAEを使いstrutsで画像ファイルのアップロードをし、その中身をgoogleのデータストアに保存したいと思ってい
ます。

しかしながらファイルの入力画面でファイルを指定して、actioクラスが動いたときに下記のようなエラーが出てしまいます。

java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted
class. Please see the Google App Engine developer's guide for more
details.
at
com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:
51)
at
org.apache.commons.fileupload.disk.DiskFileItem.<clinit>(DiskFileItem.java:
103)
at
org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:
103)
at
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:
358)
at
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:
310)
at
org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:
186)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:
410)
at
org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:
50)
at
org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:
60)
at
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:
51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:
191)
at
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:
305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:
191)
at
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:
283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:
1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:
462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
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.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
51)
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:
122)
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.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:349)
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.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
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)


クラスが無いというエラーだと思ったのですが、調べてもよくわかりませんでした。

どうかよろしくお願いします。


Kazunori Sato

unread,
Jun 8, 2010, 2:17:41 AM6/8/10
to google-app-engine-japan
takayukiさん、

はじめまして、スティルハウス佐藤と申します。

> プログラム初心者で、今現在GAEを使いstrutsで画像ファイルのアップロードをし、その中身をgoogleのデータストアに保存したいと思ってい
> ます。

App Engineでは残念ながらローカルファイルの読み書きを行えません。Strutsのファイルアップロード機能は使えないので、Blobstore等のApp
Engineのファイルアップロード機能を代わりに使う必要があります。

どうぞよろしくお願いします。

スティルハウス佐藤一憲

2010年6月8日15:02 takayuki <y1-tak...@spcn.co.jp>:

> --
> このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
佐藤一憲/Stillhouse Co.

takayuki

unread,
Jun 8, 2010, 2:30:50 AM6/8/10
to Google-App-Engine-Japan
スティルハウス佐藤さん、早速の返信ありがとうございます。
takayukiです。

> App Engineでは残念ながらローカルファイルの読み書きを行えません。Strutsのファイルアップロード機能は使えないので、Blobstore等のApp Engineのファイルアップロード機能を代わりに使う必要があります。

Strutsでのファイルアップロードはできないとのことで、App Engineのファイルアップロード機能を調べて
みます。

ありがとうございました。

また何かあった時はよろしくお願いします。

On 6月8日, 午後3:17, Kazunori Sato <k...@sth.co.jp> wrote:
> takayukiさん、
>
> はじめまして、スティルハウス佐藤と申します。
>
> > プログラム初心者で、今現在GAEを使いstrutsで画像ファイルのアップロードをし、その中身をgoogleのデータストアに保存したいと思ってい
> > ます。
>
> App Engineでは残念ながらローカルファイルの読み書きを行えません。Strutsのファイルアップロード機能は使えないので、Blobstore等のApp
> Engineのファイルアップロード機能を代わりに使う必要があります。
>
> どうぞよろしくお願いします。
>
> スティルハウス佐藤一憲
>
> 2010年6月8日15:02 takayuki <y1-takaha...@spcn.co.jp>:

Yasuo Higa

unread,
Jun 8, 2010, 5:26:24 AM6/8/10
to google-app-...@googlegroups.com
ひがです。

>
> はじめまして、スティルハウス佐藤と申します。
>
>> プログラム初心者で、今現在GAEを使いstrutsで画像ファイルのアップロードをし、その中身をgoogleのデータストアに保存したいと思ってい
>> ます。
>
> App Engineでは残念ながらローカルファイルの読み書きを行えません。Strutsのファイルアップロード機能は使えないので、Blobstore等のApp
> Engineのファイルアップロード機能を代わりに使う必要があります。
>
デフォルトのcommons-fileuploadはテンプファイルの書き込みを行うので使えませんが、
Streaming APIを使えば、大丈夫です。
Reply all
Reply to author
Forward
0 new messages