XML payload is too much for references. Is it feasible to find a more
convenient format or it needs encapsulated on a SOAP envelope?


2011/12/7 ant elder <[email protected]>:
> This is good and i will have a go in 2.x to see if a similar approach
> works there. But i can't help thinking its a slightly convoluted
> approach and as we have more flexibility in 2.x to add more APIs I
> wonder if we should just add a more direct API method to set the URIs
> with extra methods on Node, or also perhaps something like being able
> to do: ((TuscanyServiceReference)serviceReference).setURI(uri)?
>
>   ...ant
>
> ---------- Forwarded message ----------
> From: Simon Nash <[email protected]>
> Date: Wed, Dec 7, 2011 at 1:04 PM
> Subject: Re: Dynamic service references (summary)
> To: [email protected]
>
>
> Millies, Sebastian wrote:
>>
>> Thank you very much for all your help, Simon.
>>
> You're very welcome.  I'm glad this is working for you now.
>
>
>> I summarize here the result of this discussion for everyone's benefit:
>>
>> For dynamic web service endpoints, get a wsdl for the web service and define
>> a service reference with interface.wsdl using wsdl.binding and a dummy
>> URI in the binding.ws element.
>>
> One small point--it doesn't need to be interface.wsdl.  It should also work
> if you use interface.java.
>
>  Simon
>
>
>> <sca:reference name="bapiCostcenterGetList" requires="sca:authentication">
>>  <sca:interface.wsdl
>>    interface="urn:functions#wsdl.interface(ZWS_BAPI_COSTCENTER_GETLIST)" />
>>    <sca:binding.ws
>>      
>> wsdlElement="urn:functions#wsdl.binding(ZWS_BAPI_COSTCENTER_GETLISTBinding)"
>>      uri="dynamicURI" />
>> </sca:reference>
>>
>> At run time get the service reference, serialize it to XML, replace the
>> dummy URI with the real endpoint URI, deserialize the reference and call the
>> service method. The serialization coding goes like this:
>>
>>  public String serializeServiceReferenceXML( ServiceReference<T> sr )
>>    throws IOException
>>  {
>>    ServiceReferenceImpl<T> sri = (ServiceReferenceImpl<T>) sr;
>>    return sri.toXMLString();
>>  }
>>
>>  public ServiceReference<T> deserializeServiceReferenceXML( String 
>> serializedSR )
>>    throws Exception
>>  {
>>    StringReader reader = new StringReader( serializedSR );
>>    XMLStreamReader xmlReader = 
>> XMLInputFactory.newInstance().createXMLStreamReader( reader );
>>    ServiceReferenceImpl<T> sri = new ServiceReferenceImpl<T>( xmlReader );
>>    return sri;
>>  }
>>
>> The deserialized reference will work also when using policy sets (I have 
>> tested
>> that with basic authentication).
>>
>> For background on the changes that have been made to the 1.x  trunk to make
>> this possible, refer to TUSCANY-3984.
>>
>> -- Sebastian
>>
>> IDS Scheer Consulting GmbH
>> Geschäftsführer/Managing Directors: Kamyar Niroumand, Ivo Totev
>> Sitz/Registered office: Altenkesseler Straße 17, 66115 Saarbrücken, Germany 
>> - Registergericht/Commercial register: Saarbrücken HRB 19681
>> http://www.softwareag.com
>>



-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
"Favola -Moda".

Reply via email to