2010-02-05 6 views
5

Je devrai être en mesure de recevoir ces données XML à partir d'un WebService Java et je ne suis pas vraiment sûr de ce qu'il faut exposer dans mon WebMethod afin que je puisse le consommer? C'est juste une commande de base et des articles. En .Net j'aurais juste passé une liste d'objet de commande.Consommation de données XML via C# Web Service

Je devrais élargir un peu plus loin. Il s'agit d'un processus Oracle BPEL qui doit être mappé à ce WebService C# exposé. Je devrais exposer le OrderNumber, ItemNumber, etc. (comme indiqué dans XML). Le problème que j'ai est que j'aurais 1 à plusieurs éléments, etc, donc je ne peux pas exposer les éléments de base (chaîne, int).

Probablement assez trivial pour la plupart de la communauté ici ... juste pas sûr de savoir comment le faire? Toutes les suggestions grandement appréciées.

que je pouvais faire quelque chose comme (construire un objet de commande et il semble montrer le xml que j'attendre?)

[WebMethod] 
public static List<Orders> GetOrders(List<Orders> ordersList) 
{ 
    List<Orders oList = ordersList; 

    return oList; 
} 

XML:

<Order> 
    <OrderNumber>12345</OrderNumber> 
    <OrderDate>01/25/2010</OrderDate> 
    <OrderSource>Affiliate123</OrderSource> 
    <Items> 
    <ItemNumber>123478</ItemNumber> 
    <Qty>5</Qty> 
    <UOM>EA</UOM> 
    <Description>Test Item</Description> 
    </Items> 
</Order> 
+1

Je ne comprends pas. Parlez-vous de C#, Java ou JavaScript? –

+0

Etes-vous en train d'essayer de communiquer avec un service Web basé sur Java en utilisant le Web-Service basé sur C#? Web-Method est dans votre application !! right –

+0

Quel est le protocole impliqué? –

Répondre

0

Vous avez répondu à votre propre question. L'infrastructure de services Web .NET mappera un type de retour de List<T> à une séquence de T au niveau SOAP, comme si vous aviez utilisé un T[] (tableau de T).

Quand j'écris un service rapide de l'échantillon comme la vôtre, c'est le XML, il retourne:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <GetOrdersResponse xmlns="http://tempuri.org/"> 
     <GetOrdersResult> 
     <Order> 
      <OrderNumber>int</OrderNumber> 
      <OrderDate>dateTime</OrderDate> 
      <OrderSource>string</OrderSource> 
      <Items> 
      <Item xsi:nil="true" /> 
      <Item xsi:nil="true" /> 
      </Items> 
     </Order> 
     <Order> 
      <OrderNumber>int</OrderNumber> 
      <OrderDate>dateTime</OrderDate> 
      <OrderSource>string</OrderSource> 
      <Items> 
      <Item xsi:nil="true" /> 
      <Item xsi:nil="true" /> 
      </Items> 
     </Order> 
     </GetOrdersResult> 
    </GetOrdersResponse> 
    </soap:Body> 
</soap:Envelope> 

Votre couche BPEL devrait être en mesure de consommer ce assez facilement.

+0

Cool. J'espérais que je ne savais pas quelle serait la meilleure solution pour exposer les champs à cartographier. Merci. – scarpacci

0

Vous n'avez pas besoin d'exposer un WebMethod, car je suppose que vous ne publiez pas de WebService, vous consommez plutôt le WebService de quelqu'un d'autre. Je ne suis pas sûr si je comprends votre question correctement, mais si je fais alors dans Visual Studio vous devez juste "Ajouter Webreference" à l'URL WebService et il devrait créer automatiquement les objets proxy .NET, vous pouvez ensuite utiliser ces objets pour consommer les méthodes.

Cheers, Mithun

http://blog.mithunbose.com

+0

Fondamentalement ce qu'il est (mes excuses pour ne pas expliquer complètement) est un processus Oracle BPEL qui aura besoin de mapper à ce service exposé. Je devrais donc exposer le numéro de commande, le numéro d'article etc. Le problème pour moi est que je pourrais avoir 1 à plusieurs articles, etc. – scarpacci

+0

Pourriez-vous s'il vous plaît laissez-moi savoir la signature de la WebMethod que vous consommez. Veuillez également mentionner quelques détails sur chaque paramètre de cette méthode et la valeur de retour. Je suppose que la chaîne XML sera la valeur de retour? –

+0

Désolé, je n'ai pas remarqué que vous avez mis à jour votre message et que vous avez mentionné la signature webmethod. –

Questions connexes