私はWSDLを使用してGrailsプロジェクトからWebサービスを呼び出す方法を学ぼうとしています。参照用にWSDLといくつかのXML結果が提供されています。
WSDLからJavaコードを生成することができましたが、すべてが正しく機能しているようです。
これがWSDLです:http://www.restfulwebservices.net/rest/USAZipCodeService.svc?wsdl
そしてここにXMLがあります:http ://api.geonames.org/postalCodeSearch?placename = MN&username = demo
私のプロジェクトでこの例外を受け取っています:
エラーclient.WebServiceClientFactoryImpl$WSClientInvocationHandler-「geonames」要素に名前空間がありません。javax.xml.ws.soap.SOAPFaultException:「geonames」要素に名前空間がありません。
返されたXMLがSOAPに対して無効であると言っているようです。私はここでパズルのいくつかのピースを見逃している/誤解していますか?それはすべて私にとってかなり新しいものです。
編集:cxfクライアントと呼ばれるGrailsプラグインを使用しようとしています:https ://github.com/ctoestreich/cxf-client
Config.groovyで次のように構成されています(ここで何かが間違っている/欠落している可能性がありますか?):
wsdl = "http://www.restfulwebservices.net/wcf/USAZipCodeService.svc?wsdl"
namespace = "cxf.client.postalcode"
clientInterface = "cxf.client.postalcode.IPostalCodeService"
serviceEndpointAddress = "http://api.geonames.org/postalCodeSearch"