2010-02-05 6 views
5

aracılığıyla xml verilerini tüketin ve ben bu yüzden tüketebilir benim WebMethod ne maruz gerçekten emin değilim? Bu sadece basit bir sipariş ve öğeler. .Net'de sadece bir sipariş nesnesi listesi geçirdim.Ben bir Java WebService bu xml veri almaya muktedir gerekecektir C# Web Servisi

Biraz daha genişletmeliyim. Bu açığa çıkan C# WebService ile eşleşmesi gereken bir Oracle BPEL işlemi. OrderNumber, ItemNumber, vs'yi (XML'de gösterildiği gibi) açığa çıkarmalıyım. Sahip olduğum sorun, 1'den Çok Öğeye sahip olacağım, yani temel öğeleri (dizge, int) gösteremem.

Buradaki çoğu topluluk için muhtemelen oldukça önemsiz ... sadece nasıl yapılacağından emin değil misiniz? Herhangi bir öneri büyük beğeni topluyor.

ben gibi bir şey yapabileceğini (sipariş nesne oluşturmak ve ben beklediğiniz gibi xml göstermek için görünür?)

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

    return oList; 
} 

XML: Sen maruz gerekmez

<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

Anlamıyorum. C#, Java veya JavaScript hakkında mı konuşuyorsunuz? –

+0

C# tabanlı Web Hizmeti'ni kullanarak java tabanlı bir Web Hizmeti ile iletişim kurmaya çalışıyorsunuz ???? Web-Metod Uygulamanızda! sağ –

+0

Hangi protokolde yer alır ?? –

cevap

0

Kendi soru cevap var. NET web hizmetleri çerçevesi bir T[] (T dizisi) kullanmıştı sadece sanki SABUN seviyesinde T bir dizisine List<T> bir dönüş türü eşler. Ben tıpkı sizinki gibi hızlı bir numune hizmeti yazarken

, bu döndürür XML'dir:

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

Kişisel BPEL tabakası oldukça kolay olduğunu tüketmek gerekir.

+0

Cool gibi bir şey döndürürdüm. Haritalama alanlarını açığa çıkarmak için en iyi çözümün ne olduğundan emin olamayacağımı umuyordum. Teşekkürler. – scarpacci

0

WebMethod, bir WebService yayımlamadığınızı varsaydığımdan, başka birinin WebService'sini tüketiyorsunuz.

Sorunuzu doğru anlayabildiğimden emin değilim, ancak Visual Studio'da yaparsam WebService URL'sine "WebReference Ekle" ye sahip olmanız ve otomatik olarak .NET proxy nesnelerini oluşturması gerekir. Bu nesnelere yöntemleri tüketmek.

Alkış, Mithun

http://blog.mithunbose.com

+0

Temel olarak ne olduğu (tamamen açıklamamak için özür dilerim) bu açığa çıkan hizmetle eşleşmesi gereken bir Oracle BPEL işlemidir. Bu yüzden, OrderNumber, ItemNumber vb. 'I açığa çıkarmam gerekirdi. Benim için sorun, 1'den Çok Öğe'ye vb. Sahip olabileceğimizdir. – scarpacci

+0

Tüketmekte olduğunuz WebMethod imzasını bana bildirir misiniz? Ayrıca, bu yöntemdeki her bir parametre ve dönüş değeri hakkında çok az ayrıntı belirtin. Sanırım XML dizgisi dönüş değeri mi olacak? –

+0

Maalesef yayınınızı güncellediğinizi fark etmedim ve webmethod imzasından bahsettiniz. –

İlgili konular