cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Ma <...@iona.com>
Subject Re: configurability of published soap:address location on jaxws endpoints
Date Tue, 04 Dec 2007 09:54:03 GMT
My idea is this: configure "publishedEndpointUrl" as a jaxws properties  :
      <jaxws:endpoint id="publishedEndpointUrl" implementor="#greeter"
                  address="http://localhost:8080/publishedEndpointUrl">
            <jaxws:properties>
             <entry key="publishedEndpointUrl" 
value="http://cxf.apache.org/GreeterEndpoint"/>
            </jaxws:properties>
       </jaxws:endpoint>

and store this property in endpointInfo before the EndpointImpl class 
invoks the server.start() [1].
Then you can rewrite this address in wsdl definition before it is 
written to http response[2] .
Look at these codes :[1] [2] and [3] for some details.

Regards
Jim

[1]  
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/EndpointImpl.java

[2] 
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/http/WSDLQueryHandler.java

[3] 
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java




Christian Vest Hansen wrote:
> Hi Willem,
>
> Troublesome as it may be, I have to try it. I'm scheduled this month
> to work on this as it is a feature that's pretty high on our wish
> list, and we might schedule more time if one month is not enough.
>
>   
>> I think if we can delegate the WSDL query to a static WSDL resovler
>> handler , you can define the WSDL service address as what you want.
>>     
>
> Can you tell me more about this idea? Where would the good extension
> points be - what packages & modules to look at.
>
>
> 2007/12/4, Willem Jiang <ning.jiang@iona.com>:
>   
>> Hi Chirstian,
>>
>> I don't think you can do that , since CXFServletControl will use the
>> endpoint address which get from the endpoint information to find the
>> right destination, and this endpoint information will be used as the
>> service address when CXF generate the WSDL for you.
>>
>> I think if we can delegate the WSDL query to a static WSDL resovler
>> handler , you can define the WSDL service address as what you want.
>>
>> Willem.
>>
>> Christian Vest Hansen wrote:
>>     
>>> Hi,
>>>
>>> I'm trying to make it possible to configure the published soap:address
>>> location in the jaxws generated WSDLs.
>>>
>>> >From a spring point of view, I'm trying to make this:
>>>
>>> (beans.xml....)
>>>   <jaxws:endpoint id="publishedEndpointUrl"
>>>     implementor="#greeter"
>>>     address="http://localhost:8080/publishedEndpointUrl"
>>>     publishedEndpointUrl="http://cxf.apache.org/GreeterEndpoint"/>
>>> (....)
>>>
>>> Do this:
>>>
>>> (http://localhost:8080/publishedEndpointUrl?wsdl....)
>>>   <wsdl:service name="GreeterService">
>>>     <wsdl:port binding="tns:GreeterServiceSoapBinding" name="GreeterPort">
>>>       <soap:address location="http://cxf.apache.org/GreeterEndpoint"/>
>>>     </wsdl:port>
>>>   </wsdl:service>
>>> (....)
>>>
>>> Right now, I'm trying to wrap my head around how the WSDL is generated
>>> and how that is connected to the values in the EndpointImpl objects
>>> that the jaxws:endpoint xml generates.
>>>
>>> If you have any hints to that end, or other relevant information then
>>> it would be greatly appreciated - I haven't worked with the CXF source
>>> before and the docs on the wiki are still a bit sparse in this regard.
>>>
>>> Thanks!
>>>
>>>
>>>       
>
>
>   

Mime
View raw message