cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glynn, Eoghan" <eoghan.gl...@iona.com>
Subject RE: http: URLs and setepURL
Date Mon, 12 Mar 2007 23:15:16 GMT
 

> -----Original Message-----
> From: Polar Humenn [mailto:phumenn@iona.com] 
> Sent: 12 March 2007 20:28
> To: cxf-dev@incubator.apache.org
> Subject: http: URLs and setepURL
> 
> In the HttpConduit I have noticed that the "url" for the 
> conduit is set up in the constructors from the EndpointInfo, 
> or the EndpointReferenceType.
> 
> However, it maybe totally overridden in send(Message) by the 
> Message.ENDPOINT_ADDRESS on the message. What purpose does this have?


I'd imagine the purpose is to support the standard JAX-WS mechanism
whereby the application can explicitly control the target address by
setting the BindingProvider.ENDPOINT_ADDRESS_PROPERTY on the request
context. 


> Shouldn't this conduit ONLY be sending messages to the 
> endpoint designated (configured) for it?


Not necessarily. 

The purpose of the BindingProvider.ENDPOINT_ADDRESS_PROPERTY is to give
the client application the flexibility to override the target endpoint
address if necessary. For example the service may have migrated to a new
address, but the WSDL or annotated Java available to the client app may
be out-of-date.


> Furthermore, the code fragment in setupURL
> 
>         String result = value != null ? value : url.toString();
>          if (null != pathInfo && !result.endWith(pathInfo)) {
>                 result = result + pathInfo;
>         }
> 
> has a bit of a caveat in that you'd never be able to send a 
> request to a location of  "http://somewhere.com/xx/xx", 
> specified by a URL of "http://somwhere.com/xx" a 
> Message.PATH_INFO property of "/xx".


If you think this is an important usage scenario, feel free to submit a
patch with a fix.
 

> Now some might say "why would you want to do that?" I know 
> "xx" doesn't make sense to most, but what about,
> 
>          "http://somewhere.com/path/to/parent/.."
> 
> as a URL location built up from other things you might have 
> dealt with, and you want to set a path from there to be "/.." 
> Then you are in a completely different location than you want to be.
> 
> Is there a specific "contract" are placed on 
> Message.ENDPOINT_ADDRESS, Message.PATH_INFO for this 
> situation, or its it a bug?
> 
> Cheers,
> -Polar
> 
> 

Mime
View raw message