0

OData4jライブラリを備えたJavaサーブレットがあり、SilverlightアプリケーションからHTTPPOSTリクエストを作成できるように構成したいと思います。

私の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」ファイルをリソースディレクトリに追加しようとしましたが、それも機能しません。SilverlightアプリケーションでHTTPPOSTリクエストを送信すると、引き続きSecurityExceptionが発生します。

ヒントをいただければ幸いです。

ありがとう

4

1 に答える 1

0

CrossDomainResourceConfig をインスタンス化すると、「crossdomain.xml」および「clientaccesspolicy.xml」ファイルが有効になることが判明しました。問題は、それらが URL:/myService/crossdomain.xmlおよびで入手できることです/myService/clientaccesspolicy.xml

ただし、Silverlight ランタイムは、サーバー ルート (例: /clientaccesspolicy.xml)でこれらのファイルを検索します。

これらのファイルを両方ともサーバー ルートに手動で追加することで、問題が修正されました。

于 2011-10-24T15:32:06.893 に答える