質問

私は、Oracle XSQLサーブレットのいくつかのカスタムシリアライザを記述しようとしています。私は、彼らはまだ開発され、試験されているので、地元の.ear以内に私の2つのシリアライザを維持しようとしていると私は、生産コードを傷つけたくはありません。しかし、私は次のエラーを取得しています。

XML-25021:シリアライザXLSv2がXSQL構成ファイルで定義されていません。

タグのようなの.war / WEB-INFのルックスのディレクトリ一覧
classes/
        scott/
              XLSv2Serializer.class
              XLSXSerializer.class
lib/
    <empty>
web.xml
MyConfig.xml

私のWEB-INF / web.xmlのは次のようになります。

<web-app>
  <display-name>demoSerializer</display-name>
  <distributable />
    <init-param>
        <param-name>xsql.config</param-name>
        <param-value>MyConfig.xml</param-value>
        <description>use my dev config file</description>
    </init-param>
</web-app>

MyConfig.XMLの次のようになります。

<XSQLConfig>
  <serializerdefs>
    <serializer>
      <name>XLSv2</name>
      <class>scott.XLSv2Serializer</class>
    </serializer>
    <serializer>
      <name>XLSX</name>
      <class>scott.XLSXSerializer</class>
    </serializer>
  </serializerdefs>
</XSQLConfig>

私は何かが足りないのですか?

役に立ちましたか?

解決

それを考え出しました。まず、私は切り替え

<?xml-stylesheet serializer="{@serializer}"?>

<?xml-stylesheet serializer="java:scott.XLSXSerializer"?>
WEB-INF /クラス内見て、それを強制的に

。私がアクセス編集XSQLConfigを持っていないと私のシリアライザが.warのにローカルなので、私がテストしたときに、私はシリアライザてmanualy変更する必要があること、小さな迷惑にそれを投げています。

この私が「シリアライザがロードエラーことができませんでした」。

を取得した後

はApache POIのOOXMLは、XMLBeansのが必要です。第二の問題は、XMLBeansのは、サーバ上で発見されていなかったので、シリアライザは静かに死んでしまうとロードされることはありませんということでした。何らかの理由で送出されていました例外をログになっていませんでした。ワークブックが作成されていた場所の周りにコードを移動した後、主に、私は最終的に例外を見ました。この修正は、WEB-INF /

内のlibディレクトリでのXMLBeansを入れていました

最後にサイドノートは:どのように私はxsql.configをオーバーライドするドキュメントはそれが必要と言うにもかかわらず、働いていませんでした。私は故意にMyConfig.XMLに不正な形式のXMLを書くことで、これを見つけました。アプリはまだ配備され、それが失敗しているはずのRAN細かいます。

誰もが単一の.earためXSQLConfig.xmlをオーバーライドする方法を知っている場合は、

、私はそれを聞くのが大好きです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top