0

text/htmlを返さなければならないGETRESTWebサービス(Rest API)を構築しました。シーケンス内には、Webページ( http://www.mypage.comなど)を呼び出し、その内容をString変数に取り込むメディエーターがあります。
その後、コンテンツ内の文字列をいくつか置き換えて、text/htmlとしてクライアントに送り返す必要があります。
問題は、ページに戻したときに、esbがすべて<html>のタグと他のタグを&lt;html&gt;タグに置き換えたことです。したがって、Webブラウザはhtmlページをレンダリングせず、ページ自体にタグを書き込むだけです。

主なアイデアは、サーブレットへのプロキシのように機能することです。ここで、サーブレットを呼び出し、応答を取得し、取得したde htmlおよびjavascript内で文字列を置換して、クライアントに送信します。

シーケンスxmlは次のとおりです。

 <resource methods="GET" uri-template="/view">
  <inSequence>
     <log level="full"/>
     <header name="To" action="remove"/>
     <property name="URL" value="http://www.mypage.com"/>
     <sequence key="MyMediator"/>
     <property name="RESPONSE" value="true"/>
     <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
     <property name="ContentType" value="text/html" scope="axis2"/>
     <enrich>
        <source type="property" clone="true" property="RESPONSE_MSG"/>
        <target type="body"/>
     </enrich>
     <send/>
  </inSequence>

そこで、htmlを含む文字列変数(JavaクラスであるメディエーターMyMediatorから取得し、Webページwww.mypage.comを呼び出します)をプロパティ'RESPONSE_MSG'に入れて、それを本文に書き込もうとします(エンリッチ) 。

この場合、設定したプロパティがXMLではなく文字列であるため、エラーが発生します。
エンリッチの代わりにpayloadFactoryを使用すると、XMLが生成され、。でhtmlタグが取得されます&lt;html&gt;

&lt;メディエーターから文字列変数を送信でき、文字列内のすべてのhtmlタグがとに置き換えられるxmlに変換されない効果的な方法を知りたい&gt;です。または、上記のコードのようにエラーなしで送信できます。プロパティRESPONSE_MSGに入力した変数に別のタイプを使用する必要がありますか?

前もって感謝します!

4

1 に答える 1

0

これは、使用している messageFormatter (text/html) の問題です。conf ディレクトリの axis2.xml ファイルをチェックして、キーワード text/html に対してどの messageFormatter が構成されているかを確認します。それ以外の場合は、通常の XML ビルダー (つまり、application/xml) を試してください。

于 2012-11-25T07:04:25.973 に答える