0

私たちのローカルネットワークには、一般的なWeb ブラウザ経由でアクセスできる既存のWeb IDE タイプのアプリケーションがあります。Jboss FUSE ESBを使用して、ローカルクラウド/任意のネットワーク間のトンネルとして/機能させ たいと考えています。そのため、 Web ブラウザー client を介して、ブラウザーが存在するネットワークに関係なくアプリケーションに接続できます。ESBを介して要求応答を常にクライアント ブラウザーに送信します。

私はプロキシアプローチを使用しています:

  • ブラウザに URL を入力すると、初回のみ ESB を使用するアプリケーションにリダイレクトされます。
  • 次に、通常の方法でアプリケーションとの対話を開始します。ただし、ESB 経由ではありません。

これは JBOSS-FUSE-ESB で可能ですか、それともこのタスクには不適切なツールですか?

<camelContext trace="true" id="blueprintContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="REQUEST">
    <from uri="jetty:http://0.0.0.0:1805/myRemoteApp?matchOnUriPrefix=true" id="TO-APP">
        <description/>
    </from>
    <to uri="jetty:http://my.cpny.com:1804/myapp/mainServlet?bridgeEndpoint=true&amp;throwExceptionOnFailure=false" id="RealServer-IN"/>        
</route>

どんな提案でも大歓迎です。

4

1 に答える 1

2

WebブラウザがESBを使用せずにサーバーと直接やり取りするために使用する必要があるURLを含むHTTPリダイレクトステータスコードを返信する必要があるようです。

最初の呼び出しの後など、Camel メッセージのヘッダーを使用して、http ステータス コードとリダイレクト先を設定できます。

<route id="REQUEST">
    <from uri="jetty:http://0.0.0.0:1805/myRemoteApp?matchOnUriPrefix=true" id="TO-APP">
        <description/>
    </from>
    <to uri="jetty:http://my.cpny.com:1804/myapp/mainServlet?bridgeEndpoint=true&amp;throwExceptionOnFailure=false" id="RealServer-IN"/>        
     .. // add logic here to compute the new url and set that as Location header. And then set a status code 30x for redirect
     <setHeader headerName="HttpStatusCode"><constant>300</constant></setHeader>
     <setHeader headerName="Location"><constant>http:blabla</constant></setHeader>
</route>
于 2015-04-22T04:57:58.937 に答える