Play Web Hizmeti Hizmeti API'sini kullanarak SOAP web hizmeti istemcisi geliştirmeye çalışıyorum ancak bunu nasıl yapacağımı anlayamıyorum. Bağlantı buldum: https://www.playframework.com/documentation/2.5.x/JavaWS Ancak, herhangi bir örnek kod göremiyorum, SOAP web hizmetini tüketmek için WSClient'i nasıl kullanacağım. Herhangi bir tavsiye büyük takdir, teşekkürler.Play Framework 2.5.1'de SOAP web hizmet sunucusu istemcisi
0
A
cevap
0
(Sadece bütünlüğü uğruna 2 ekledik)
- (sen denedi gibi) Çalma WS modülü kullanma Play ile SABUN web servislerini kullanmak için 2 yol vardır - senin kadar XML ile çalışma olacak, sadece çağırabilirsiniz: elbette
CompletionStage<Document> documentPromise = ws.url(url).get().thenApply(WSResponse::asXml);
XML Belge sen mani olabilir aldıktan sonra İstediğiniz herhangi bir şekilde pulate - örneğin XPath veya başka XML ayrıştırma mekanizması ile:
String value = XPath.selectText("//value", yourXmlDocument);
Node node = XPath.selectNode("//node", yourXmlDocument);
-
- Kütüphanenizi
build.sbt
dosyasında bir bağımlılık olarak sağlayabilir veya Play projesinin sınıf yoluna yerleştirebilir ve daha sonra kullanabilirsiniz. Ayrıca
scalaxb (
http://scalaxb.org/sbt-scalaxb) yardım için
Merhaba, teşekkür bakmak, ama ben bir sorum daha var. 1 örnek değişkeninizde, URL, asmx dosyasına (ör. Http://www.webservicex.net/globalweather.asmx) veya belirli bir web metnine (ör. Http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry) işaret etmelidir. Aşağıdaki yazdım: ws.url ("http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry") .setRequestTimeout (5000) .setQueryParameter ("CountryName", "Ukrayna"). thenApply (WSResponse :: asXml) ve CompletionFuture tamamlandı, bu web servisine yapılan çağrılar var ve sonuç belgesi boş. –
URL, mutlaka birlikte çalışacağınız kaynağa işaret etmelidir - bu durumda GetCitiesByCountry işleminde. Ama sonra bir "POST" isteğine ihtiyaç duyduklarını unutmayın - bu nedenle '.get()' – Anton
Merhaba yerine '.post()' kullanmak zorundayım, kodumu "CompletionStage responseStage = ws.url (") olarak değiştirdim http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry").setQueryParameter("CountryName "," Ukrayna "). setRequestTimeout (5000) .post (" content "). thenApply (WSResponse :: asXml); veya ws.url ("http://www.webservicex.net/globalweather.asmx/GetCitiesByCountry") .setRequestTimeout (5000) .post ("CountryName = Ukrayna") .thenApply (WSResponse :: asXml); ve şimdi Oyun 'org.xml.sax.SAXParseException; satırSayı: 1; columnNumber: 1; Prolog.' içeriğine izin verilmiyor. –