2009-11-17 3 views

Répondre

2

WCF est un cadre de service Web. Java fournit également ses propres frameworks de services Web. Ils devraient pouvoir interopérer assez facilement, bien que vous deviez poser une question beaucoup plus précise si vous voulez une meilleure réponse.

modifier: Le lien ProjectTango vous demandez dit au sujet de tout dans le premier paragraphe:

... pour assurer l'interopérabilité des fonctionnalités d'entreprise, tels que la sécurité, messagerie fiable et atomiques transactions.

Ce sont des ajouts de fantaisie aux services Web de base et les spécifications ne suffisent pas à assurer la compatibilité .

L'interaction de base du service Web, dont 99,9% d'entre nous ont toujours besoin, fonctionnera parfaitement entre WCF et Java.

+0

J'ai googlé et j'ai découvert le "Projet Tango" pour cette affaire maintenant. Pourquoi développer un nouveau projet, comme vous l'avez dit facilement? – tobias

+0

lien: http://java.sun.com/developer/technicalArticles/glassfish/ProjectTango/ – tobias

2

Réponse courte, Oui.
Réponse longue, l'interopérabilité dépend de plusieurs facteurs. L'interopérabilité de base est très facile. Ce n'est que lorsque vous insérez des facteurs tels que la sécurité que les choses se compliquent. Nous avons fait des recherches sur les frameworks de services web Java disponibles et avons découvert que le meilleur pour notre scénario est le metro stack avec netbeans 6.5 IDE. Nous avons atteint la sécurité des messages qui est obligatoire pour le projet en utilisant l'authentification par certificat mutuel client/serveur. Voici quelques pièges découverts dans le processus:
- Vous devez ajouter la bibliothèque webservices-rt.jar du répertoire glassfish dans le projet netbeans. (Le fichier JAR n'a pas besoin de glassfish)
- WCF génère des fichiers WSDL multifil et NetBeans ne peut pas les utiliser pour générer un proxy, bien que si netbeans est configuré pour utiliser l'URL (http://../?wsdl), il peut générer le proxy.
- Vous devez placer [IsRequired = true] sur tous les datamembres dans WCF. La gestion par Java des datamembers optionnels est assez compliquée. - Les dictionnaires en tant que databembers s'affichent sous forme de liste

0

Vous pouvez utiliser les services JAX-WS du côté Java, puis utiliser WCF dans .NET.

Créez d'abord les services JAX-WS (les bibliothèques glassfish vous permettront de le faire). Créez vos POJO, ajoutez les annotations JAX-WS et déployez votre WAR. Ensuite, récupérez le fichier WSDL généré par votre serveur et donnez-le à VisualStudio. VisualStudio peut générer le client pour vous.

C'est la manière simple, mais votre kilométrage variera bien sûr.

1

Nous l'avons fait avec succès sur plusieurs projets. Nous utilisons WCF basicHttpBinding, c'est l'option la plus simple si vous avez juste besoin de la faire fonctionner. L'une des choses qui peut être un bouchon de spectacle est si un service utilise un type de données spécifique à la plate-forme, comme un vecteur Java ou un ensemble de données .net.