2

すべて、私は、ResinWebアプリサーバーにデプロイするJavaWebアプリに取り組んでいます。私はアプリケーションの新しい部分に対していくつかのXML解析を行っていましたが、私たちのアプリが解析を行うためにResinクラスを使用していることに気付きました。私はそれを避けて、いくつかの理由でより標準的なものを使用したかったので、これらのシステムプロパティをresin configファイルで設定しました(そしてxerces jarをクラスパスに追加しました):

<system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>

<system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>

そして、現在、いくつかのページでJSPコンパイルエラーが発生しています(Resinの組み込みパーサーの方が寛容だったと思います)。エラーは次のとおりです。

org.xml.sax.SAXParseException: The value of attribute "title" associated with an element type "display:column" must not contain the '<' character.

また、一部のページの「display:column」タグには、実際に「title」属性にマークアップが含まれています。次に例を示します。

<display:column scope='col' class=" appealColorBG  selectAllWidth" 
    title="<span class='centerThis'><label for='selectAll'>Select All</label><br />
            <input type='checkbox' name='selectAll' 
            id='selectAll' 
            onClick='selectAllCheckboxes();'/></span> " >

これは醜いJSPコードですが、すでに本番環境にあるコードでもあるため、変更することを躊躇しています。

JSPをそのままコンパイルできるようにxercesを設定する方法を知っている人はいますか?

4

1 に答える 1

1

それは確かに醜いJSPコードです。

XMLパーサーを使用している場合は、問題があります。Xercesが指示しているように、有効なXMLの属性値に「<」文字を含めることはできません。

Xercesにこれを受け入れるように指示できるかどうかは疑わしいですが、XMLを修正することは、XMLパーサーに誤ったXMLを受け入れるように指示するよりも良い考えです。

Xercesに適切なXMLをフィードできるようになるまで、Resinクラスの使用に戻るか、JSPコンパイルの一部としてXMLパーサーを使用しないようにResinを構成することをお勧めします。コメントを参照してください。

于 2010-04-20T00:07:24.960 に答える