4

現在の実装ではJSPを使用してXMLを生成していますが、使用しているさまざまなレコードタイプの数が増え、JSPテンプレートの数を維持するのが面倒になっています。

そこで、javax.xml.bindを使用してソリューションをコーディングしましたが、コードはコンパイルされますが、OSGiでは実行されないことがすぐにわかりました。簡単に言うと、ネイティブにコンパイルされた依存関係(com.sun。*)があり、デフォルトではFelixブートクラスパスに含まれていません。この依存関係を含めるには、sling.propertiesを変更して、org.osgi.framework.bootdelegation構成行にcom.sun。*を含めます。ただし、私は大企業の実稼働環境で作業しているため、追加の構成部分を管理するという考えは理想的ではありません。

それで、私の質問の要点は、Adobe CQでプログラムでカスタムXMLを生成するためのより良い方法はありますか?スタックに、javax.xml.bindの代わりに使用する必要のある別のJAXB implがありますか?よりCQ/Felixに適した別のXMLマーシャリングAPIはありますか?

4

3 に答える 3

2

これに関する具体的なドキュメントはまだありませんが、Slingブート委任を変更せずにcom.sun。*を含めることは可能です。

このpom.xmlで、CQ5のCXFをOSGiサービスとして使用するデモプロジェクトでこれを実行しました。これは、maven-bundle-pluginの<dependency>またはのいずれかです。<Import-Package>

プロジェクト全体は、GitHubのhttps://github.com/antonyh/cq5-cxfで入手できます。CQ5.4/ CQ5.5のブート委任を変更せずにビルド、インストール、および動作します。

于 2013-03-04T22:38:40.880 に答える
1

CQ5.5 osgiバンドルには、パッケージをエクスポートするorg.apache.cocoon.cocoon-xmlが含まれています。

org.apache.cocoon.xml.dom,version=2.0.0
org.apache.cocoon.xml.sax,version=2.0.0

これは、他のosgiバンドルまたはコンポーネントjspファイルで使用できます。

于 2013-03-07T18:25:19.703 に答える
0

「バニラ」XMLの場合、コンテンツURLに.xml拡張子を追加するだけで、コンテンツのXML表現が出力されます。これはHTTPで取得できます。

于 2013-02-01T06:54:17.833 に答える