2010-03-29 5 views
1

Je suis assez nouveau pour les services Grails/Groovy/Web et je suis la consommation d'un service web .net ..Groovy/Grails En utilisant WSClient consommer .net service web

J'ai un code se connecte au service à l'aide Grails plug-in WS-client:

WebService webService 

def result = { 
def wsdl = 
    ApplicationHolder.application.parentContext.getResource('WEB-INF/productsSoap.wsdl') 

def proxy = webService.getClient(wsdl.getURL().toString()) 
def productTypeListResponse = proxy.ProductTypeList() 

} 

J'ai aussi utilisé soapUI pour examiner les données renvoyées par le service Web qui a donné ..

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
    <ProductTypeListResponse xmlns="http://tempuri.org/"> 
    <ProductTypeListResult> 
     <xs:schema id="ProductTypeListResult" xmlns="" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
      <xs:element name="ProductTypeListResult" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
       <xs:complexType> 
       <xs:choice minOccurs="0" maxOccurs="unbounded"> 
        <xs:element name="ProductTypeListResult"> 
         <xs:complexType> 
          <xs:sequence> 
          <xs:element name="PRD_TypeId" type="xs:int" minOccurs="0"/> 
          <xs:element name="PRD_TypeName" type="xs:string" minOccurs="0"/> 
          <xs:element name="PRD_Type" type="xs:string" minOccurs="0"/> 
          </xs:sequence> 
         </xs:complexType> 
        </xs:element> 
       </xs:choice> 
       </xs:complexType> 
      </xs:element> 
     </xs:schema> 
     <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> 
      <ProductTypeListResult xmlns=""> 
       <ProductTypeListResult diffgr:id="ProductTypeListResult1" msdata:rowOrder="0"> 
       <PRD_TypeId>2</PRD_TypeId> 
       <PRD_TypeName>ProdType2</PRD_TypeName> 
       <PRD_Type>S</PRD_Type> 
       </ProductTypeListResult> 
       <ProductTypeListResult diffgr:id="ProductTypeListResult2" msdata:rowOrder="1"> 
       <PRD_TypeId>3</PRD_TypeId> 
       <PRD_TypeName>ProdType3</PRD_TypeName> 
       <PRD_Type>C</PRD_Type> 
       </ProductTypeListResult> 
       <ProductTypeListResult diffgr:id="ProductTypeListResult3" msdata:rowOrder="2"> 
       <PRD_TypeId>4</PRD_TypeId> 
       <PRD_TypeName>ProdType4</PRD_TypeName> 
       </ProductTypeListResult> 
      </ProductTypeListResult> 
     </diffgr:diffgram> 
    </ProductTypeListResult> 
    </ProductTypeListResponse> 

> qui est un ensemble de données .net ..

Alors ma question est de savoir comment puis-je obtenir à l'information à l'aide de mon productTypeListResponse? Quelqu'un peut-il me donner un pointeur?

Répondre

0

Le client WS doit générer le code approprié pour accéder au résultat. Je ne comprends pas bien le wsdl que le service .net génère, mais vous devriez avoir des méthodes telles que

productTypeListResponse.ProductTypeListResult 

sur votre objet de réponse. Vérifiez l'exemple sur le client WS groovy site.

À mon humble avis je vous suggère d'utiliser une bibliothèque plus mature, comme spring ws

Questions connexes