- - PR -
AXISでTEMPディレクトリに作成される一時ファイルが消えない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-13 16:29
他所でも投稿いたしましたが、レスがないためこちらでも投稿させて頂きます。 Axis 1.4でファイル添付機能を使用しています。 クライアントでサービスからファイルを受信する際に、 TEMPディレクトリにAXISによってファイルが作成されるようですが、 なぜか削除されません。 TEMPの例)C:\DOCUME~1\user\Local Settings\Temp\Axis29066.att" これはなぜでしょうか。 AttachmentPartを使用して、 "org.apache.axis.Message#getAttachmentsImpl()"を実行しています。 "org.apache.axis.attachments.ManagedMemoryDataSource#delete()"が 使用されていないのが問題ではないかと疑っていますが、よく理解できておりません。 どなたか同じ現象に合われた方や理由がわかる方がいらっしゃいましたら ご教授の程宜しくお願い致します。 [環境] Windows2000 Tomcat4 Axis1.1 |
|
投稿日時: 2006-10-18 14:31
自己レスですが、そもそも、AXISのアタッチメントは一時ファイルを作成した後に消すわけではなく、自分で消す必要があるのでしょうか。 クライアント→サービスの場合、WEB-INF/attachments サービス→クライアントの場合、クラインとのTEMPディレクトリにAxisXXXX.attという ファイルが作成されます。 現在は、以下のようにプログラムしております。 -------------------------------------------------------- Message msg = call.getMessageContext().getResponseMessage(); Attachments msgAttas = msg.getAttachmentsImpl(); Collection collection = msgAttas.getAttachments(); AttachmentPart[] attachmentParts = (AttachmentPart[]) collection.toArray(new AttachmentPart[0]); FileOutputStream fs = null; fs = new FileOutputStream(filePath); attachmentParts[0].getDataHandler().writeTo(fs); fs.close(); |
|
投稿日時: 2006-10-19 23:42
参考程度お願いします。
axis1.1においてクライアント→サーバへファイル転送した場合、 WEB-INF/attachments にテンポラリ(と思われる)ファイルが作成される事例を知っています。 #私事ではないので、詳細は覚えてません ただその時は、アプリケーションサーバ側の問題で決着しました。 このケースも、WEB-INF/attachments 、つまりアプリケーションサーバの作成したデイレクトリ内ですよね。 axis側で該当するような実装をしていないのであれば、アプリケーションサーバの問題である可能性もあります。 作成されるファイルを削除するコードをつくることはできるとしも、アプリケーションサーバ内のものを消すのはスっきりしないですね。 まぁ、参考程度で。 |
|
投稿日時: 2006-10-20 16:35
アドバイス有難うございます。
サービス→クライアントの場合は、必ずTEMPディレクトリのファイルが作成され、残りますが、クライアント→サーバは、不規則で、消えたり、残ったりしますので、確かにAPサーバーが影響しているかもしれません。 サーバー側は、削除ツールを作成すれば良いですが、クライアント側はそういうわけには行かないですので、問題の根本を解決しないといけないのです。 引き続き、情報がありましたらお願い致します。 |
1