1. 無料アクセス解析

crossroad's Blog

Javaを中心にした技術ネタなど。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

S2Flex2のサンプルが動かない(XIncludeに注意)

S2Flex2の技術調査で、配布されているサンプルを動作させようとしたのですが、
なかなか動作せず、ハマりました。

【環境】
 ・JRE 5.x
 ・Tomcat 5.0.x
 ・S2Flex2 1.1.0

【現象】
 サンプルをTomcatにデプロイし、ブラウザからアクセスすると、
 ブラウザ上に
 「Error #2044: ハンドルされていない NetStatusEvent : level=error,
code=NetConnection.Call.Failed

 と言うエラーが表示され、動作しない。

 サーバ(Tomcat)のログには、
 WARN 2007-08-29 11:35:34,515 [http8080-Processor24] org.seasar.flex2.rpc.remoting.message.io.reader.impl.Amf3MessageReaderImplのプロパティ(references)が見つからないので設定をスキップします
 WARN 2007-08-29 11:35:34,515 [http8080-Processor24] org.seasar.flex2.rpc.remoting.message.io.reader.impl.Amf3MessageReaderImplのプロパティ(dataReaderFactory)が見つからないので設定をスキップします
 WARN 2007-08-29 11:35:34,546 [http8080-Processor24] org.seasar.flex2.rpc.remoting.message.io.reader.impl.Amf3MessageReaderImplのプロパティ(sharedObject)が見つからないので設定をスキップします
 DEBUG 2007-08-29 11:35:34,640 [http8080-Processor24] HOT deployを終了しました
 StandardWrapperValve[gateway]: サーブレット gateway のServlet.service()が例外を投げました
 java.lang.NullPointerException
 at org.seasar.flex2.rpc.remoting.message.io.reader.impl.AmfMessageReaderImpl.clean(AmfMessageReaderImpl.java:102)
 と出力されている。

【原因】
 直接の原因は、サーバログにワーニングとして表示されているように、
 コンポーネントの自動バインディングが正しく行われていないことです。

 なぜ、自動バインディングが行われていないか?は、diconのインクルード
 方法が関係していました。

 S2Flex2関連のdiconファイルでは、インクルードにXInclude(<xi:include .../> )が使用されていますが、
 Tomcat 5.0.xにバンドルされているXMLパーサ(Xerces 2.6.x)は、 XIncludeをサポートしていない
ようなのです。
 (参考 SeasarファウンデーションのXIncludeに関するドキュメント

 このため、diconファイルが正しくインクルードされず、インクルード先の
 diconに定義されているコンポーネントが認識されていないのでした。

【対処】
 対応としては、Tomcat 5.0.xにバンドルされているXMLパーサを使用しないようにすれば良いです。

 具体的には、TOMCAT_HOME/common/endorsed の下にある、xercesImpl.jar と xmlParserAPIs.jar
 を削除
すれば、JREにバンドルされているXMLパーサが使用されるようになります。

 JRE 5.xのXMLパーサは、XIncludeをサポートしているようなので、問題は解決しました。
 (前出のドキュメントによると、JRE 1.4.xのXMLパーサはXInclude未サポートなので、
  この対応をしてもダメ。)

 もしかすると、Tomcat 5.5.xだと問題が発生しないかもしれないですね。(未確認)





 
関連記事
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2007/09/01(土) 18:57:49|
  2. ソフトウェア開発 Seasar
  3. | トラックバック:0
  4. | コメント:2
<<HARRY ライブチケットげと | ホーム | ニューPC購入(Windows VISTA)>>

コメント

hirossyさん、コメントありがとうございます。
やはりTomcat 5.0以前でのみ発生する問題ですか...
あと商用のアプリケーションサーバでも、独自のXMLパーサをバンドルしているものはハマるかもしれないですね。

この辺が組み合わせ自由度の高いオープンソースプロダクトの怖いところですね。
  1. URL |
  2. 2007/09/06(木) 22:36:21 |
  3. crossroad #-
  4. [ 編集]

こんばんは。
Tomcat5.5.17だと大丈夫でしたよ~
  1. URL |
  2. 2007/09/06(木) 22:19:36 |
  3. hirossy #-
  4. [ 編集]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://bagineer.blog59.fc2.com/tb.php/88-47865d07
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

crossroad

Author:crossroad
関西在住。男。
フリーランスのソフトウェアエンジニア。
エレキベース(Rock&Roll)とお酒が好物でございます。

カテゴリー

タグリスト

Java F1 フリーランス ベーシスト HARRY TheStreetSliders iPhone FX お酒 Seasar Maven eclipse Wicket マイホーム 野球 プロジェクトファシリテーション Rails Ruby UML お店 ソフトウェア Tomcat S2Flex2 jsf Teeda Eclipse タグライブラリ ajax タスク europa mylyn trac 

ブログ内検索

最近の記事

最近のコメント

最近のトラックバック

カレンダー

07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

月別アーカイブ

全ての記事を表示する

全ての記事を表示する

Twitter


RSSフィード

リンク

このブログをリンクに追加する

アクセスカウンタ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。