2016-10-20 1 views
0

J'ai écrit un service web en java avec axis2 et tomcat, ainsi qu'un client en C# que j'ai appelé avec succès des méthodes sur le serveur web avec. Mais je suis aux prises avec une méthode qui doit être capable de prendre n'importe quel objet en paramètre. Un flotteur, une chaîne, un fichier aléatoire ou une image.Appel d'une méthode dans un service web java, avec un objet en paramètre, à partir du client C#

J'ai essayé de créer un objet sérialisable dans C#, que je peux créer et mettre à l'intérieur de mon String puis l'envoyer en paramètre à mon funtion de service web. Mais j'obtiens: Exception levée: 'System.InvalidOperationException' dans System.Xml.dll

Comment dois-je résoudre ce problème? Je suppose que je dois sérialiser d'abord, mais je ne comprends pas comment je fais cela et puis envoie l'objet sérialisé en tant que paramètre à la fonction. Et cet objet doit-il être défini sur le service Web aussi?

Répondre

0

Vous allez rencontrer des problèmes si vous voulez envoyer "n'importe quel" objet C# à Java. Les objets C# ne se réduisent pas facilement à un objet Java. Ils sont différents langages et chacun ont des caractéristiques uniques dans leur modèle d'objet. Au lieu de cela, trouvez un format neutre (comme Json) qui peut capturer n'importe quel type de données dont vous avez besoin. Les formats de données communs comme Int, String, Boolean, etc. sont facilement capturés dans JSon. Des objets plus complexes peuvent également être créés avec JSON.

Donc, je recommande ce qui suit. Pour chaque objet C# que vous voulez envoyer à travers le réseau, faites-lui implémenter une méthode toJson, qui l'emporte et le place dans JSON, transmet le JSON et le désérialise comme un objet Java. Cela devrait couvrir la plupart des cas.

+0

Je suppose que cela équivaut à faire un XML de l'objet à la place? – Balle

+0

C'est un peu ce que je voulais essayer, mais je n'étais pas vraiment sûr de savoir comment faire le xml et le passer à la fonction du client C#. – Balle

+0

Vous n'avez pas besoin de xml juste Json. Tout d'abord, assurez-vous de savoir comment faire face à Json en C# et Java, sans vous soucier de choses sur le Web. Ensuite, apprendre à envoyer cette chaîne JSON à travers le fil – adamM