- PR -

strutsでのFileのuploadで発生するWarning

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2004/08/03
投稿数: 21
投稿日時: 2005-02-28 23:30
最近ずっとできずにわからない事があるのですが、誰か解決策を知りませんか?

struts1.2
weblogic server 8.1 sp2

fileの取り込みを行なっているのですが、Warningが出てしまいます。
処理はきちんと行えているのですが・・・

<Warning><BEA-101138>
メソッドのgetParameterファミリの1つがServletInputStreamから読み込み後に呼び出されました。postパラメータを結合しません。

という警告が出てしまいます。
どうにかできないのでしょうか?お願いします。
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-03-01 00:56
まずはweblogicサーバのマニュアルなりなんなりを見てみるのが先ではないでしょうか?
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2005-03-01 01:25
未記入さん、こんにちは。

引用:
メソッドのgetParameterファミリの1つがServletInputStreamから読み込み後に呼び出されました。


とあるのでしたら、それを疑ってみたらどうでしょうか?

ServletRequestに対して、一度 getInputStream()を読んだ後では、
getParameter()とか使用できませんよ。
getInputStream()のAPIドキュメントより引用:
引用:
このメソッドまたは getReader() のどちらかを、本体を読み取るために呼び出すことができますが、両方を呼び出すことはできません。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-01 09:53
メッセージの通りだと思いますが、それでも不明なのであればサポート窓口に問い合わせてみてはいかがでしょうか?
せっかく商用製品をつかっているのですから。
未記入
常連さん
会議室デビュー日: 2004/08/03
投稿数: 21
投稿日時: 2005-03-01 10:05
ご返答ありがとうございます。

strutsのソースを見たところ、Kissingerさんの言われてることを行っているようです。

Weblogicのサーバーマニュアルは
post パラメータ が getParameter メソッドを介して入手できることにコードが依存している場合は、コードを修正してください。
っとなっており、対応策がわからず困っています。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-01 15:04
>post パラメータ が getParameter メソッドを介して入手できることにコードが依存している場合は、コー
>ドを修正してください。
既にKissinger さんが指摘されている通りですが、getInputStream() を使わない場合のみ getParameter() によりパラメータ取得ができます。しかし getInputStream() を使うと getParameter() によるパラメータの取得が出来ません。getInputStream() を使っていない場合のみを想定したコード、のことを「getParameter メソッドを介して入手できることにコードが依存している場合」と表現しているのでしょう。

>対応策がわからず困っています。
なのであれば、繰り返しになりますがまずサポート窓口に問い合わせてみてはいかがでしょうか?
Free Edition でサポート契約がないのであればしょうがないですが、商用アプリケーションの開発をしているのであればサポート契約を結んでいるのではないでしょうか?
サポート窓口を使わずに自分で問題を解決しようとするのであればソースコードの確認、改変ができるオープンソースの製品を使った方が良いかもしれません。
#もちろんサポートを除いても実績や安定性、パフォーマンス、ユーザビリティという意味で商用製品が有利な面も多くありますが。
うまくサポート窓口を使って問題の切りわけを委譲すれば開発全体のコストを抑えることが出来ますし、なにしろこのような掲示板よりも責任のある回答が得られます。
未記入
常連さん
会議室デビュー日: 2004/08/03
投稿数: 21
投稿日時: 2005-03-02 20:09
残念ながら、サポート契約はしていませんでした。

ですが、sp4にバージョンupしたらでなくなりました。
皆様いろいろとありがとうございました。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-03 03:41
なるほど。そういう事情があったんですね。
SP3のリリースノートを確認してみたところそれっぽいのがありました。転送時に不必要に警告メッセージが出ることがあるとか。
コーディングに問題がないのであればこれに該当しているのかもしれませんね。
・サービス パック 3 で解決された問題 > サーブレット > CR128051
http://edocs.beasys.co.jp/e-docs/wls/docs81/notes/resolved_sp03.html#1820963
----
送を行うリクエストをポストするクライアントに対して、次の警告メッセージが表示されることがあります。
"Warning: One of the getParameter family of methods called after reading from the ServletInputStream(), can't mix these two!".
転送されたリクエストはポスト パラメータが解析された後にのみ、クエリ パラメータの取得を試みるようにコードが修正されました。その結果、警告メッセージは表示されなくなりました。
----

[ メッセージ編集済み 編集者: インギ 編集日時 2005-03-03 06:56 ]
1

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