2011-10-20 14 views
0

OData4jライブラリのJavaサーブレットがあり、SilverlightアプリケーションからHTTP POSTリクエストを行うように設定したいと考えています。Silverlightアプリケーションのjavaサーブレットでcrossdomain呼び出しを有効にする

私のweb.xmlファイルは次のようになります。

<servlet> 
    <servlet-name>OData</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
    <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name> 
    <param-value>org.odata4j.producer.resources.ODataResourceConfig</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>OData</servlet-name> 
    <url-pattern>/myService/*</url-pattern> 
</servlet-mapping> 

私は私のweb.xmlファイルにこれを追加しようとしました:

<servlet> 
    <servlet-name>CrossDomain</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
    <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name> 
    <param-value>org.odata4j.producer.resources.CrossDomainResourceConfig</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>CrossDomain</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

しかし、それは動作しません。私も "crossdomain.xml"と "clientaccesspolicy.xml"ファイルを自分のresourcesディレクトリに追加しようとしましたが、それもうまくいきません。 SilverlightアプリケーションでHTTP POSTリクエストを送信すると、SecurityExceptionが発生します。

ご意見をいただければ幸いです。

おかげ

+0

「動作しません」と定義します。セキュリティ上の例外は「動作しない」という指示ですか?または別の何かが起こる。どのようなログを取得しますか? – Tim

+0

ええ、私は同じセキュリティ例外を意味しました。私はついに間違っていたことを発見以下の答えを見てください。 – Mathieu

答えて

0

はCrossDomainResourceConfigをインスタンス化する "のcrossdomain.xml" と "clientaccesspolicy.xml" ファイルを有効にしていることが判明します。 URLには、/myService/crossdomain.xml/myService/clientaccesspolicy.xmlがあります。

しかし、Silverlightのランタイムがサーバーのルートにこれらのファイルを検索します:手動でサーバーのルートにそれらのファイルの両方を追加することにより(例えば/clientaccesspolicy.xml

、それは問題を修正しました。

関連する問題