質問するログイン新規登録

質問編集履歴

1

エラーの詳細についての調査結果の追記

2015/02/18 08:30

投稿

whitehorse_1439
whitehorse_1439

スコア6

title CHANGED
File without changes
body CHANGED
@@ -39,4 +39,21 @@
39
39
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
40
40
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
41
41
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
42
- ```
42
+ ```
43
+ 2015.2.18
44
+ ソースを解析したところ、XMLパーサーで使用しているTextBuffer内で、読み込んだ要素をStringに
45
+ 変換するところで発生していました。
46
+ ```lang-<java>
47
+ char[] curr = new char[oldLen + (oldLen >> 1)];
48
+ ```
49
+ ※以下の場所でも落ちることがあります。
50
+ ```lang-<java>
51
+ StringBuffer sb = new StringBuffer(segLen + currLen);
52
+ ```
53
+
54
+ どちらも、<data>タグ内の要素をすべて変数に格納しようとして、メモリを使い切っているのですが、
55
+ 今回のデータ構造として、Base64にされたバイナリ情報が連携される為、順次処理などで
56
+ 出力しないと、どうやってもメモリ不足は回避できないと思っております。
57
+
58
+ どなたか、Axis2を使用してSOAPエンベロープ内の情報を順次処理でファイルなどに
59
+ 出力する方法をご存じの方はいらっしゃいますでしょうか?