2010-02-05 9 views
5

Dovrò essere in grado di ricevere questi dati xml da un WebService Java e non sono davvero sicuro di cosa esporre nel mio WebMethod in modo che possa consumarlo? È solo un ordine e oggetti di base. In. Net avrei appena passato un elenco di oggetti ordine.Consuma dati xml tramite C# Web Service

Vorrei espandermi un po '. È un processo Oracle BPEL che dovrà essere mappato a questo WebService C# esposto. Avrei bisogno di esporre OrderNumber, ItemNumber, ecc. (Come mostrato in XML). Il problema che sto avendo è che avrei da 1 a molti elementi, ecc. Quindi non posso esporre gli elementi di base (string, int).

Probabilmente piuttosto banale per la maggior parte della comunità qui ... non sapete esattamente come farlo? Ogni suggerimento è molto apprezzato.

avrei potuto fare qualcosa di simile (costruire un oggetto ordine e sembra mostrare il codice XML come mi sarei aspettato?)

[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

Non capisco. parli di C#, Java o JavaScript? –

+0

Stai provando a comunicare con un servizio Web basato su Java utilizzando il servizio Web basato su C# ???? Il metodo web è nella tua app !! right –

+0

Che protocollo è coinvolto ?? –

risposta

0

aver risposto alla tua domanda. Il framework dei servizi Web .NET mapperà un tipo di ritorno di List<T> in una sequenza di T a livello SOAP, proprio come se fosse stato utilizzato uno T[] (array di T).

Quando scrivo un servizio rapido del campione come la tua, questo è il XML restituisce:

<?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> 

vostro strato BPEL dovrebbe essere in grado di consumare che abbastanza facilmente.

+0

Cool. Speravo che non sarei stato sicuro di quale fosse la soluzione migliore per esporre i campi per la mappatura. Grazie. – scarpacci

0

Non è necessario esporre un WebMethod, come presumo che tu non stia pubblicando un WebService, invece stai consumando il WebService di qualcun altro.

Non sono sicuro di aver compreso correttamente la domanda, ma se lo faccio in Visual Studio è sufficiente "Aggiungi riferimento web" all'URL del servizio Web e dovrebbe creare automaticamente gli oggetti proxy .NET, è quindi possibile utilizzare questi oggetti per consumare i metodi.

Cheers, Mithun

http://blog.mithunbose.com

+0

Fondamentalmente quello che è (le mie scuse per non aver spiegato completamente) è un processo Oracle BPEL che dovrà essere mappato a questo servizio esposto. Quindi avrei bisogno di esporre OrderNumber, ItemNumber ecc. Il problema per me è che potrei avere da 1 a molti articoli, ecc. – scarpacci

+0

Per favore fammi sapere la firma del WebMethod che stai consumando. Si prega di citare anche piccoli dettagli su ciascun parametro su quel metodo e sul valore di ritorno. Immagino che la stringa XML sarà il valore di ritorno? –

+0

Mi spiace di non aver notato che hai aggiornato il tuo post e ho menzionato la firma del webmethod. –