cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William Tam <email.w...@gmail.com>
Subject Re: base-address for CXF
Date Fri, 13 Jan 2012 19:40:00 GMT
Anyone else can response, too.   (Perhaps, Freeman is unavailable).

Thanks.

On 01/11/2012 06:20 PM, William Tam wrote:
> Hi Freeman,
>
> I think I see an issue that can prevent publishedEndpointUrl property 
> to be set on EndpointInfo object if the endpoint is created by a 
> non-jaxws frontend.  (it is done when 
> org.apache.cxf.jaxws.EndpointImp.doPublish() is  called)
>
> In AbstractWSDLBasedEndpointFactory, the following snippet will set 
> publishedEndpointUrl property which is inside createEndpointInfo()  
> method.
>
>         if (publishedEndpointUrl != null && 
> !"".equals(publishedEndpointUrl)) {
>             ei.setProperty("publishedEndpointUrl", publishedEndpointUrl);
>         }
>
> However, the EndpointInfo object could be created by other factories 
> (e.g. SoapTransportFactory) and so the 
> AbstractWSDLBasedEndpointFactory.createEndpointInfo() method may not 
> be called at all.  As a result, the publishedEndpointUrl may not be set.
>
> I would suggest moving the snippet to the createEndpoint() need line 
> 159.  (see diff from trunk below). That way, the publishedEndpointUrl 
> is set on EndpointInfo regardless how it was created.
>
> Index: 
> src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java
> ===================================================================
> --- 
> src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java    
> (revision 1229797)
> +++ 
> src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java    
> (working copy)
> @@ -157,6 +157,10 @@
>              ei.setAddress(getAddress());
>          }
>
> +        if (publishedEndpointUrl != null && 
> !"".equals(publishedEndpointUrl)) {
> +            ei.setProperty("publishedEndpointUrl", 
> publishedEndpointUrl);
> +        }
> +
>          if (endpointReference != null) {
>              ei.setAddress(endpointReference);
>          }
> @@ -294,10 +298,6 @@
>          ei.setAddress(getAddress());
>          ei.setBinding(bindingInfo);
>
> -        if (publishedEndpointUrl != null && 
> !"".equals(publishedEndpointUrl)) {
> -            ei.setProperty("publishedEndpointUrl", 
> publishedEndpointUrl);
> -        }
> -
>          if (wsdlEndpointFactory != null) {
>              wsdlEndpointFactory.createPortExtensors(ei, service);
>          }
>
> Thanks.
>
> On 11/30/2011 07:59 PM, Freeman Fang wrote:
>>
>> On 2011-11-30, at 下午9:30, rickthemick wrote:
>>
>>> I cant see that it works like you describe it.
>>>
>>> Adding publishedEndpointUrl in my Spring conf:
>>>
>>> <jaxws:endpoint id="MyServiceEndpoint" implementor="#myService"
>>>    address="/myservice" >
>>> <jaxws:properties>
>>> <entry key="publishedEndpointUrl" value="myserver" />
>>> </jaxws:properties>
>>> </jaxws:endpoint>
>> Hi,
>>
>> You need change the publishedEndpointUrl value to 
>> http://myserver/cxf/myservice
>> Also in the Service List Page, you can find the wsdl URL there is 
>> http://myserver/cxf/myservice?wsdl.
>> I just tested it with 2.4.4, it works for me.
>>
>> Freeman
>>>
>>> - Does not affect the service listing, I dont get "myserver" as host 
>>> for the
>>> services.
>>> - And in the WSDL, it affects the whole service URL, not just the
>>> host/server part:
>>> <wsdl:port binding="tns:ConfigDbServiceImplServiceSoapBinding"
>>> name="ConfigDbServiceImplPort">
>>> <soap:address location="myserver"/>
>>> </wsdl:port>
>>>
>>>  It should be: http://myserver/cxf/myservice I believe.
>>> - Even if it would work, I dont want to control this in the "code" (the
>>> spring config in the service bundle).
>>>
>>> In my understanding its still base-address that would solve my 
>>> problem, but
>>> I dont know how to make it affective and I havent found the 
>>> definition of it
>>> either.
>>>
>>>
>>>
>>>
>>> -- 
>>> View this message in context: 
>>> http://cxf.547215.n5.nabble.com/base-address-for-CXF-tp5034937p5035493.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
>> ---------------------------------------------
>> Freeman Fang
>>
>> FuseSource
>> Email:ffang@fusesource.com
>> Web: fusesource.com
>> Twitter: freemanfang
>> Blog: http://freemanfang.blogspot.com
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

Mime
View raw message