No Such Blog or Diary
今日のはまりどころ
したのコードでは POST のメッセージが飛ばない.
URLConnection con = new URL(path).openConnection(); con.setDoOutput(true); con.setDoInput(false); PrintWriter pw = new PrintWriter(con.getOutputStream()); pw.println(path + " " + con); pw.flush(); pw.close(); System.out.println(path + " " + con);
どうやら InputStream を開いてやらないとサーバに POST のメッセージすら送ってくれないらしい.これに気づくのにかなりの時間を喰った… が,あとすこしなのでがむばろう.
- Comments: 0
- TrackBack (Close): -
継承したメソッドは…
Axis2 で ServiceClass として指定したクラスのオーバライドせずに引き継いだメソッドを公開しようとしたら java2wsdl がうまく動いてくれなかった.メッセージの中身がすべて空になってこけまくる.何かやり方があるのか仕様なのか.よく分からんことで時間を無駄にした.
エラー時に例外投げずにいきなり終了する(System.exit)するライブラリの実装って使いたくないんだけど… これが遠隔地のサーバ上で起きるからデバッグが非常にめんどくさい.System.exit 実行時の挙動を適当に変える方法は無いものか?
- Comments: 0
- TrackBack (Close): -
Axis2 がこけてた部分を直す
何が悪いのか分からんが Mac のサーバ(Darwin + JDK1.4.2_09 + Tamcat5.5) で Axis2 の REST アクセスがこけていたのを Axis2 の一部に修正を加えてどうにかなおした.修正したのは modules/core/src/org/apache/axis2/description/AxisMessage.java で,109 行目あたりに xmlSchemaElement.getQName()!=null && を追加した.
if (xmlSchemaElement.getQName()!=null && xmlSchemaElement.getQName().equals(getElementQName())) {
なぜか知らんが xmlSchemaElement.getQName() が null になることがあって NullPointerException で落ちたのがこれまでの状況.null チェック入れたらうまく動くようになった.たぶん,余計な空白とか改行とかをパースした時にテキストエレメントが余計に挿入されるとかが原因でしょう.
ちなみに,JDK1.5 でコンパイルしてたらライブラリのバージョンがおかしいといわれてこけたので,etc/project.properties に下記2行を追加して 1.4 コンパチのバイナリをはくように maven に指定した.
maven.compile.target=1.4 maven.compile.source=1.4
んで,途中で maven-itest-plugin がないといわれてこけるので
maven plugin:download -DgroupId=maven -DartifactId=maven-itest-plugin -Dversion=1.0 -Dmaven.repo.remote=http://people.apache.org/repository
をやって個別にダウンロードして,さらに ~/.maven/repository/maven/plugins/maven-itest-plugin-1.0.jar を ~/.maven/repository/maven-itest-plugin/plugins/maven-itest-plugin-1.0.jar にコピーしてやる.
オマケに stax-utils-20060501.jar もミスるので http://ws.zones.apache.org/~dims/maven/stax-utils/jars/stax-utils-20060501.jar から ~/.maven/repository/stax-utils/jars/stax-utils-20060501.jar にダウンロード.
さらにオマケに bcprov-jdk13-132.jar もミスるので http://ws.zones.apache.org/~dims/maven/bouncycastle/jars/bcprov-jdk13-132.jar から ~/.maven/repository/bouncycastle/jars/bcprov-jdk13-132.jar にダウンロード.
最後に opensaml-1.0.1.jar もミスるので http://ws.zones.apache.org/~dims/maven/opensaml/jars/opensaml-1.0.1.jar から ~/.maven/repository/opensaml/jars/opensaml-1.0.1.jar にダウンロードする.
結局のところ http://ws.zones.apache.org/~dims/maven/ から全部落とせばいいのかも…
- Comments: 0
- TrackBack (Close): -
Mavenの使い方が…
よく分からない.Axis2 のコンパイルで maven-itest-plugin がダウンロードできないとか言ってこけるのだが対処の仕方が分からない.やはりちゃんと覚えなければならないようだ.
- Comments: 0
- TrackBack (Close): -
Axis2 のソースを眺める
サービスがサーバ上で NullPointerException を吐いて止まってしまうためその原因を突き止めようと Axis2 のソースに手を出す始末.log4j でデバッグ情報を吐き出したほうが建設的なのだろうかと思わなくは無いのだが… REST関係のドキュメントが見つからないのがそもそもの原因だ.どこかに無いだろうか?
- Comments: 0
- TrackBack (Close): -
java で -jar と -classpath
java -classpath "hoge.jar" -jar huga.jar
とかやったら hoge.jar がクラスパスに入ってくれなくて暫くわけがわからなかった.調べたところによると -jar を指定すると -classpath などが無効化されるらしい.ということで,外部の jar をクラスパスに入れるには META-INF/MANIFEST.MF で
Class-path: hoge1.jar hoge2.jar
とか書いておくことになるらしい.これらのパスはこのマニフェストが入っているアーカイブからの相対パスになるとのこと.とりあえずパスのセパレータとして何が使えるのかわからんのだが空白で動いてたのでよしとしよう.
- Comments: 0
- TrackBack (Close): -