You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Dan Diephouse <da...@envoisolutions.com> on 2006/10/25 06:23:56 UTC
Configuration of HTTP
Hiya (CC'ing people directly as the dev list still isn't working)
I was wondering if you could explain the HTTP configuration to me a bit.
I am looking at changing the "contextMatchStrategy" setting and wondering:
1. How would I change it globally?
2. How would I change it at the service/endpoint level?
Right now I'm doing this:
((JettyHTTPDestination)
server.getDestination()).setContextMatchStrategy("stem");
It works, but its not very Spring amenable. I'm wondering what a better
way is :-)
There seems to be a ServiceModelHttpConfigurationProvider class that
looks at the EndpointInfo, but I'm wondering why do we need to support
multiple configuration providers. Couldn't we just assume that if there
is going to be something overriding the configuration it will be in the
service model? WSDL extensors should end up there, as could user
configured values. Additionally, I think it would be good to check
things beside the EndpointInfo, like the Service itself.
Thanks,
- Dan
--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog
Re: Configuration of HTTP
Posted by Dan Diephouse <da...@envoisolutions.com>.
Hiya,
Comments inline...
Andrea Smyth wrote:
> Dan Diephouse wrote:
>
>> One change I made locally is to have
>> ServiecModelHttpConfiguration.getObject(name) return
>> endpointInfo.getProperty(name) on line 50 as opposed to returning null.
>
>
> Hi Dan,
>
> IMO that's fine - the only reason that
> ServiceModelHttpConfigurationProvider returned null for all but the
> "server" and "client" properties is that up to now we only expected to
> find values for these two properties in the service model - if they
> are supplied as wsdl extensors.
> If values for these or other properties can also be expected in the
> EndpointInfo's (or ServiceInfo's) property map, these maps should be
> consulted also - either by the same provider or a different one.
>
I guess I'm confused as to why we're taking the provider approach as
opposed to just doing a lookup on the service model in the http
transport. Can you maybe shed some light here?
> The reason that only Endpoint info is searched is that the http policy
> extensors are only registered for the port element (I believe so at
> least, can't find the registering code at the moment). But I don't
> see any reasons for not registering the policies as extensors of the
> binding or portType elements also (and have the provider look there too).
>
Yes, I think it'd be beneficial to just have a context hierarchy that
gets searched (operation->endpoint->binding->service?)
> Andrea.
>
>>
>> This allows me to do this:
>>
>> JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
>> sf.setServiceClass(CustomerService.class);
>> sf.setBindingFactory(new HttpBindingInfoFactoryBean());
>> sf.setAddress("http://localhost:9001/");
>>
>> Map<String, Object> props = new HashMap<String, Object>();
>> props.put("contextMatchStrategy", "stem");
>> sf.setProperties(props);
>> ServerImpl svr = (ServerImpl) sf.create(); If someone
>> can shed some light as to whether this was a good/bad thing to do I'd
>> appreciate it :-)
>>
>> - Dan
>>
>> Dan Diephouse wrote:
>>
>>> Hiya (CC'ing people directly as the dev list still isn't working)
>>>
>>> I was wondering if you could explain the HTTP configuration to me a
>>> bit. I am looking at changing the "contextMatchStrategy" setting and
>>> wondering:
>>>
>>> 1. How would I change it globally?
>>> 2. How would I change it at the service/endpoint level?
>>>
>>> Right now I'm doing this:
>>>
>>> ((JettyHTTPDestination)
>>> server.getDestination()).setContextMatchStrategy("stem");
>>>
>>> It works, but its not very Spring amenable. I'm wondering what a
>>> better way is :-)
>>>
>>> There seems to be a ServiceModelHttpConfigurationProvider class that
>>> looks at the EndpointInfo, but I'm wondering why do we need to
>>> support multiple configuration providers. Couldn't we just assume
>>> that if there is going to be something overriding the configuration
>>> it will be in the service model? WSDL extensors should end up there,
>>> as could user configured values. Additionally, I think it would be
>>> good to check things beside the EndpointInfo, like the Service itself.
>>>
>>> Thanks,
>>> - Dan
>>>
>>
>>
>
--
Dan Diephouse
(616) 971-2053
Envoi Solutions LLC
http://netzooid.com
Re: Configuration of HTTP
Posted by Andrea Smyth <an...@iona.com>.
Dan Diephouse wrote:
> One change I made locally is to have
> ServiecModelHttpConfiguration.getObject(name) return
> endpointInfo.getProperty(name) on line 50 as opposed to returning null.
Hi Dan,
IMO that's fine - the only reason that
ServiceModelHttpConfigurationProvider returned null for all but the
"server" and "client" properties is that up to now we only expected to
find values for these two properties in the service model - if they
are supplied as wsdl extensors.
If values for these or other properties can also be expected in the
EndpointInfo's (or ServiceInfo's) property map, these maps should be
consulted also - either by the same provider or a different one.
The reason that only Endpoint info is searched is that the http policy
extensors are only registered for the port element (I believe so at
least, can't find the registering code at the moment). But I don't see
any reasons for not registering the policies as extensors of the binding
or portType elements also (and have the provider look there too).
Andrea.
>
> This allows me to do this:
>
> JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
> sf.setServiceClass(CustomerService.class);
> sf.setBindingFactory(new HttpBindingInfoFactoryBean());
> sf.setAddress("http://localhost:9001/");
>
> Map<String, Object> props = new HashMap<String, Object>();
> props.put("contextMatchStrategy", "stem");
> sf.setProperties(props);
> ServerImpl svr = (ServerImpl) sf.create();
> If someone can shed some light as to whether this was a good/bad thing
> to do I'd appreciate it :-)
>
> - Dan
>
> Dan Diephouse wrote:
>
>> Hiya (CC'ing people directly as the dev list still isn't working)
>>
>> I was wondering if you could explain the HTTP configuration to me a
>> bit. I am looking at changing the "contextMatchStrategy" setting and
>> wondering:
>>
>> 1. How would I change it globally?
>> 2. How would I change it at the service/endpoint level?
>>
>> Right now I'm doing this:
>>
>> ((JettyHTTPDestination)
>> server.getDestination()).setContextMatchStrategy("stem");
>>
>> It works, but its not very Spring amenable. I'm wondering what a
>> better way is :-)
>>
>> There seems to be a ServiceModelHttpConfigurationProvider class that
>> looks at the EndpointInfo, but I'm wondering why do we need to
>> support multiple configuration providers. Couldn't we just assume
>> that if there is going to be something overriding the configuration
>> it will be in the service model? WSDL extensors should end up there,
>> as could user configured values. Additionally, I think it would be
>> good to check things beside the EndpointInfo, like the Service itself.
>>
>> Thanks,
>> - Dan
>>
>
>
Re: Configuration of HTTP
Posted by Dan Diephouse <da...@envoisolutions.com>.
One change I made locally is to have
ServiecModelHttpConfiguration.getObject(name) return
endpointInfo.getProperty(name) on line 50 as opposed to returning null.
This allows me to do this:
JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
sf.setServiceClass(CustomerService.class);
sf.setBindingFactory(new HttpBindingInfoFactoryBean());
sf.setAddress("http://localhost:9001/");
Map<String, Object> props = new HashMap<String, Object>();
props.put("contextMatchStrategy", "stem");
sf.setProperties(props);
ServerImpl svr = (ServerImpl) sf.create();
If someone can shed some light as to whether this was a good/bad thing
to do I'd appreciate it :-)
- Dan
Dan Diephouse wrote:
> Hiya (CC'ing people directly as the dev list still isn't working)
>
> I was wondering if you could explain the HTTP configuration to me a
> bit. I am looking at changing the "contextMatchStrategy" setting and
> wondering:
>
> 1. How would I change it globally?
> 2. How would I change it at the service/endpoint level?
>
> Right now I'm doing this:
>
> ((JettyHTTPDestination)
> server.getDestination()).setContextMatchStrategy("stem");
>
> It works, but its not very Spring amenable. I'm wondering what a
> better way is :-)
>
> There seems to be a ServiceModelHttpConfigurationProvider class that
> looks at the EndpointInfo, but I'm wondering why do we need to support
> multiple configuration providers. Couldn't we just assume that if
> there is going to be something overriding the configuration it will be
> in the service model? WSDL extensors should end up there, as could
> user configured values. Additionally, I think it would be good to
> check things beside the EndpointInfo, like the Service itself.
>
> Thanks,
> - Dan
>
--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog