2010-03-12 10 views
0

J'ai un projet Silverlight 3, et je dois appeler un Java WebService - les liaisons sont ok (SOAP 1.1 et basicHttpBinding):Silverlight 3 + Java WebService

ClientConfig fichier:

<configuration> 
<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="SkyinfoTestInterfaceExport2_SkyinfoTestInterfaceHttpBinding" 
       maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
       <security mode="None"> 
        <transport> 
         <extendedProtectionPolicy policyEnforcement="Never" /> 
        </transport> 
       </security> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="myAddress" 
      binding="basicHttpBinding" bindingConfiguration="SkyinfoTestInterfaceExport2_SkyinfoTestInterfaceHttpBinding" 
      contract="SkyInfoServiceReference.SkyinfoTestInterface" name="SkyinfoTestInterfaceExport2_SkyinfoTestInterfaceHttpPort" /> 
    </client> 
</system.serviceModel> 

Quand j'appelle une méthode sur le client je reçois cette erreur politique:

une erreur est survenue en essayant de faire une demande d'URI « ... ». Cela peut être dû à la tentative d'accès à un service de manière interdomaine sans qu'une politique interdomaine appropriée soit en place ou une stratégie inappropriée pour les services SOAP. Vous devrez peut-être contacter le propriétaire du service pour publier un fichier de stratégie inter-domaines et pour vous assurer qu'il permet l'envoi d'en-têtes HTTP liés au protocole SOAP. Cette erreur peut également être provoquée en utilisant des types internes dans le proxy de service Web sans utiliser l'attribut InternalsVisibleToAttribute. S'il vous plaît voir l'exception interne pour plus de détails.

Je connais ces 2 fichiers XML de stratégie, mais le service Java EE que j'essaie d'appeler est hébergé sur un IBM WebSphere Process Server auquel je n'ai pas accès.

Est-ce que quelqu'un sait comment contourner cette exception de stratégie?

+0

Avez-vous le WSDL? – Padmarag

+0

Oui, j'ai WSDL. Le client est ok - le problème est un appel d'opération parce que je n'ai pas de politique inter-domaine. – Heko

Répondre

0

Étant donné que vous n'avez pas accès au serveur pour implémenter une stratégie interdomaine, vous devez implémenter un service RIA proxy. Il suffit d'imiter les demandes/réponses sur votre service local et de transférer ces demandes sur le service d'origine, puis de renvoyer les réponses si nécessaire.

+0

Merci! Et si j'avais accès au serveur, que devrais-je faire? Il suffit de télécharger le fichier clientaccesspolicy.xml à la racine du service? – Heko

+0

Oui. La stratégie d'accès client vous permet d'utiliser les services inter-domaines. Beaucoup de services publics communs ont cela activé comme Flickr. http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx – nyxtom