- PR -

springframeworkでのサーブレットテスト

1
投稿者投稿内容
SUNNYDAY
常連さん
会議室デビュー日: 2004/07/14
投稿数: 49
投稿日時: 2006-02-16 13:54
こんにちわ。
springframeworkを使って、Servletの試験をしています。
servletのリクエストがMultipartで、受け取ったリクエストをorg.apache.commons.fileupload(以下fileupload)を
使ってパラメータを取り出す、ということをしたいのですが、
fileuploadのparseRequestの結果が常に、空のリストを返却してしまいます。
parseRequestの内部処理も見てみたのですが、
リクエストのボディデータの読み込みで失敗しているみたいなんです。
(MalformedStreamException→the stream ends unexpectedlyを起こしています・・・)
ということは、Mockで設定しているボディのデータが悪いのかと思い、
addParameterしたり、setContentしたり、コンテントタイプを変えたりと
色々やってみたのですが、どれも正常に動作しませんでした。
あと、コンテントタイプに”boundary”を指定しないといけないみたいなのですが、
この”boundary”の意味が良くわかりません。
(バイナリを読み込む際の境界みないなもの?文字列を設定している例もあれば、数値を設定している例もありました・・・)
今は、適当な値を設定してしまっているので、この辺も関係あるのかな、と思いまして。。。
”boundary”についても、何か参考になるサイト等ご存知の方いらっしゃいましたら、ご教授願います。
ちなみに、以下がコードになります。m(_ _)m

Java:1.4
eclipse:3.1
で開発しています。

MockHttpServletRequest mockRequest = new MockHttpServletRequest("POST", "/test.xml");
MockHttpServletResponse mockResponse = new MockHttpServletResponse();


mockRequest.addParameter("arg1", "aaa");
mockRequest.addParameter("arg2", "bbb");
mockRequest.setContentType("multipart/form-data; boundary=---------------------------188807924720869525291321251320");
mockRequest.addHeader("Content-type", "multipart/form-data");
mockRequest.setCharacterEncoding("shift-jis");

CommonsMultipartResolver resolver = new CommonsMultipartResolver();
MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(mockRequest);

1

スキルアップ/キャリアアップ(JOB@IT)