- PR -
AxisのjarがServletコンテナの起動を邪魔していた!?

中山テック 代表の中山です。

さて、技術者の方々はWSDLをご存知でしょうか。

SOAPという通信規格を使用し、XML形式で送受信を行うためのインタフェース言語になります。

WEBサービスとしてこのような形式で実装しているシステムが多々あります。

そしてこれを実現するために「Apache Axis」というフレームワークが広く使われるようになりました。

現在ではAxis2.Xとして世に出回っておりますが、その前身である「Axis1.X」についてのお話となります。

最近見ていたコンテンツではないですか?
もし忘れていたのであれば今一度ご確認ください

冒頭でもお話しましたが、WEBサービス実現のためのフレームワークになります。

WSDLを使ってWEBサービスを実現しようと思うのであれば必須のフレームワークとなります。

しかし、このAxis1.Xは非常に癖が強く、バージョンによって動きが結構異なります。

事実Axis1.Xは2006年で開発を終了しており、Axis2.Xへ移行することになりました。

Axis1.Xのバージョンを確認する

もしAxis1.xが実装されているシステムで最新でなければ最終更新版をダウンロードしましょう。

ちなみに、Axis1.Xと2.Xには互換性はないのでAxis1.Xの最新版にします。

ダウンロードはAxis1.Xのダウンロードページから最新版を落としましょう。

Axis1.Xが悪さをしているケース

<<1.Javaバージョン、コンテナのバージョンを上げた場合>>

当然ですが、2006年で開発が終わっているので

Javaのバージョンやコンテナのバージョンが上がった時の動作保証はありません。

バージョンアップした場合、動作確認してExceptionが出たらまずAxis1.Xを疑ってもいいかもしれません。

※org.apache.axis~といったExceptionが出ます

<<2.循環継承している>>

レアケースだと思いますが、循環継承をしている場合があります。

代表が遭遇したのは「org.apache.axis.constants.Scope」と

「org.apache.axis.enum.Scope」の循環継承です。

これにより、アプリが延々と継承をし続け、ヒープ領域の枯渇を引き起こしたことがありました。

<<3.その他>>

もしAxis1.X最新版でもうまく行かない場合はAxis2.Xへの以降をおススメします(笑)

最近見ていたコンテンツではないですか?
もし忘れていたのであれば今一度ご確認ください

まとめ

WEBサービスを実現するために使われるWSDLですが、フレームワークが邪魔をする可能性もあり

特性や評判を考えながら導入するのが良いでしょう。

ちなみにAxis1.Xは当の開発者であるApacheも下記のように声明文を発表しています。

内部的に不適切な実装が多く(オンメモリのみの前提、内部完結の通信でも外部になげるなど)、実使用に堪えない。Axisプロジェクト自身もAxisを公開していることを外部に公表しないように呼びかけている

(Wikipedia Apache Axisのページから引用)

ということでApache2.Xの導入か別の手段を選ぶのが吉かもしれません。

中山テックでは下記のお仕事を承っています。

ホームページ制作系

ご料金はサービス内容・料金を参照ください。

■ホームページ制作

※ロゴ、バナーは外注となります

■SEO対策

Googleガイドライン診断、マネジメント、ブログ執筆など

システム開発系(SES請負契約向け)

■役職

プロジェクトマネジメント、PMO、リーダー、開発(要件定義~納品まで)

■スキル

工数見積(FP法)、折衝・提案、計画、調査、設計、実装(C、Java、クライアント系、SQL等)

データベース全般、テスト計画・項目作成、運用・保守

その他

Excel、プログラミングなどソフト系のお困りごと

対象地域

千葉県:東葛エリア(松戸市、柏市、我孫子市、市川市、流山市、船橋市、鎌ヶ谷市、白井市、浦安市) 他要相談

茨城県:取手市、土浦市、他要相談

埼玉県:三郷市、草加市、春日部市、他要相談

東京都:23区、他要相談

京都府:南区、他要相談

ご質問ございましたら、お問い合わせページよりご連絡ください。

おすすめの記事

- PR -