2016-08-08 8 views
0

私はstruts2アプリケーションを持っており、その中に別のWebアプリケーションで表示されているビデオを表示する必要があります。Struts2 - リクエストを別のアプリケーションにリダイレクトする - ビデオ

これはビデオを示すコードです。このIPはインターネット上ではアクセスできません。私のStrutsアプリケーションが置かれているサーバー上でアクセスできます。

<img src="http://<ip_from_other_server/showVideo"> 

struts2でリクエストを行うことができ、他のサーバーからの応答に転送するアクションが必要です。出来ますか?

答えて

0

解決策が見つかりました。私はこのプロジェクトに使用

:それとhttps://github.com/mitre/HTTP-Proxy-Servlet

を、私は他のサーバに要求をリダイレクトすることができます。クライアントビューでは、自分のサーバーが要求に応答しています。 web.xmlに

は、私は次のように置く:

<servlet> 
    <servlet-name>otherServer</servlet-name> 
    <servlet-class>org.mitre.dsmiley.httpproxy.URITemplateProxyServlet</servlet-class> 
    <init-param> 
     <param-name>targetUri</param-name> 
     <param-value>http://{_ipOtherServer}:{_portOtherServer}/myAction</param-value> 
    </init-param> 
    <init-param> 
     <param-name>log</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>otherServer</servlet-name> 
    <url-pattern>/otherServer/action/*</url-pattern> 
</servlet-mapping> 

はまた、struts.xmlに私は/ otherServerにマッチしたすべての要求を除外しなければなりませんでした。

<constant name="struts.action.excludePattern" value="/otherServer/.*"/> 
1

strutsソリューションの他に、ビデオサーバーに要求をリダイレクトする(Apache)プロキシを設定することもできます。それで、あなたはその巨大なソフトウェアスタックを持っていません。 Apache mod_proxy

しかし、あなたはストラットソリューションを使用することにした場合、ここにいくつかのアイデア::例はここにある

  • は多分この答えようのFileOutputStreamで、あなたのビデオサーバに接続する可能性を持つアクションを作成します。 Download file with java
  • そのためのストリームをオープンし、あなたの<img href="mypicture"> - アクションでそれをretur、多分ここのように、(どこかに一時的に保存)、そのファイルを使用します。Struts2 ServletResponseAwareまたはここStruts Stream Result

お望みなら、もう少し詳しいことができます。

+0

私はそれがリアルタイムコンテンツであるので、私のビデオサーバは、オールウェイズ、新しいコンテンツを送信しているので、私は、継続的にユーザーにビデオを更新する方法についての質問があり、ストラットのソリューションを使用したいと思います。 私はこれを試しました: ファイルtempVideoFile =新しいファイル( "/パス/ temp.mp4"); FileOutputStream fos = new FileOutputStream(tempVideoFile);fos.getChannel()。transferFrom(rbc、0、50000); 次に、結果をユーザーにストリーミングします。しかし、私はビデオを再現することはできません。 – henriquels

+0

上記の考えでは、ビデオをストリーミングすることはできません。静的なファイルだけです。リダイレクトビデオの場合は、ストリームプロキシサーバーのようなものが必要です。この特殊なケースでは、ストラットがあなたの選択肢になるとは思わない。 – beendr

関連する問題