0

我有一个带有OData4j库的 java servlet,我想对其进行配置,以便可以从 Silverlight 应用程序发出 HTTP POST 请求。

我的 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 应用程序发送 HTTP POST 请求时,我仍然收到 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 回答