cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: schemaLocation URL rewriting
Date Thu, 04 Aug 2011 15:29:10 GMT
Hi

On Thu, Aug 4, 2011 at 4:17 PM, Jérôme Revillard <jrevillard@maatg.fr> wrote:
> Hi all,
>
> Looking at this problem, I think that I found a bug inside CXF too. My use
> case might be a bit specific because I can access the services for 2
> different ports in the same host: 8443 and 443.
>
> The problem is in the
> org.apache.cxf.transport.servlet.ServletController#updateDests(HttpServletRequest
> request, boolean force) method: BaseUrlHelper.setAddress is only called the
> first time which is a problem for my use case. indeed, if the first request
> is from the 8443 port for instance, the endpoint address will always be
> resolved with the 8443 port in the next requests even if the used port is
> then 443.
>
> I think it would be good to modify:
>
>            if (ad != null
> && (ad.equals(path))) {
>                if (disableAddressUpdates) {
>
>  request.setAttribute("org.apache.cxf.transport.endpoint.address",
>                                         base + path);
>                } else {
>                    BaseUrlHelper.setAddress(d2, base + path);
>                }
>            }
>
> like this:
>
>            if (disableAddressUpdates) {
>
>  request.setAttribute("org.apache.cxf.transport.endpoint.address",
>                                     base + path);
>            } else {
>                BaseUrlHelper.setAddress(d2, base + path);
>            }
>
> What's your opinion? Is there a better way to solve my issue?
>

I think it's been fixed in CXF 2.4.1 - can you try it please ?
One still needs to use disableAddressUpdates though for it to be
thread-safe, otherwise BaseUriHelper.setAddress can be called
concurrently...
I think one more step is needed to completely disable the address
overwriting, but for now please set a disableAddressUpdates in CXF
2.4.1 - this actually may also work in CXF 2.4.0/2.3.5

Cheers, Sergey

> Best,
> Jerome
>
> Le 04/08/2011 14:10, Jérôme Revillard a écrit :
>>
>> Hi,
>>
>> Indeed, I just checked and it sounds to be a Tomcat issue as you said...
>> I will investigate further.
>>
>> Thanks,
>> Jérôme
>>
>> Le 04/08/2011 10:01, Sergey Beryozkin a écrit :
>>>
>>> Hi
>>>
>>> On Thu, Aug 4, 2011 at 7:10 AM, Jerome Revillard<jrevillard@maatg.fr>
>>>  wrote:
>>>>
>>>> Dear all,
>>>>
>>>> I don't know if it's a question for you or for tomcat but as you are
>>>> very
>>>> responsive I first post here.
>>>> We use CXF inside tomcat to create web services. We use the wsdl first
>>>> method.
>>>>
>>>> In some of our WSDL, we import xsd files. WHen we create the wsdl, the
>>>> paths
>>>> are relative to the wsdl path (i.e: schemaLocation="./xsd/job.xsd").
>>>> When we
>>>> deploy it and if we use the default tomcat https port everything if
>>>> fine:
>>>> https://sec-gw-ng-devel2.maatg.fr:8443/pandora-gateway-sal-saga/job?wsdl
>>>>
>>>> For some reason, we must access the service using the default https port
>>>> so
>>>> I used the regular port forwarding stuff using iptables. But then, the
>>>> imports URLs are not well resolved:
>>>> https://sec-gw-ng-devel2.maatg.fr/pandora-gateway-sal-saga/job?wsdl. As
>>>> you
>>>> can see, it's written "https://sec-gw-ng-devel2.maatg.fr:80" ...
>>>>
>>>> Could you tell me if it's a CXF issue or not?
>>>> If this is resolved inside the CXF source code, could you tell me where
>>>> so
>>>> that I look at the problem?
>>>>
>>> CXF uses what the underlying container reports, have a look at
>>> ServletController.updateDestination,
>>> AbstractHTTPDestination.setupMessage,
>>> WSDLGetInterceptor.
>>> I suspect it's a sifeeffect of using iptables, but I'm not sure :-),
>>> possibly an issue in Tomcat too..,
>>>
>>> Cheers, Sergey
>>>
>>>> Jerome
>>>>
>>>> --
>>>> View this message in context:
>>>> http://cxf.547215.n5.nabble.com/schemaLocation-URL-rewriting-tp4665281p4665281.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>
>
> --
> =====================================================
> Dr Jérôme Revillard
> CTO MAAT France
> www.maatg.com
>
> Immeuble Alliance Entree A,
> 74160 Archamps (France)
>
> Mob.    0033 676 108 185
> Tel.    0033 450 439 602
> Fax.    0033 450 439 601
> =====================================================
>
>
>



-- 
Sergey Beryozkin

http://sberyozkin.blogspot.com
Talend - http://www.talend.com

Mime
View raw message