Hi, I've committed a patch for supporting 'autoRewriteSoapAddressForAllServices' option. The main difference with what the already existing 'autoRewriteSoapAddress' option did, is that when rewriting the other service/ports soap:address location attributes, the existing path component of the address is not changed, as that would not really make sense.
The new option is an extension of the former one; so setting the new one to true implies also enable the former one (IOW the current service/port address is also fully rewritten). Cheers Alessio On 12/05/2012 11:51 AM, Andrei Shakirin wrote: > Issue https://issues.apache.org/jira/browse/CXF-4677 is created. > Would you like to deliver the patch yourself? > > Cheers, > Andrei. > >> -----Original Message----- >> From: Bin Zhu [mailto:[email protected]] >> Sent: Mittwoch, 5. Dezember 2012 07:24 >> To: [email protected] >> Subject: Re: service location in WSDL generated by CXF >> >> Many thanks to all of you about the suggestions. >> >> To Alessio, >> As we are working on migrating our application to CXF and these application >> needs this function to work, can you estimate when the fix could be >> delivered? It will be helpful for us to size and schedule the whole migration >> work. Thanks. >> >> 2012/12/4 Alessio Soldano <[email protected]> >> >>> I agree with the need of such a functionality. >>> I'm likely going to work on this soon, will post the jira reference later. >>> Default behaviour can for sure stay as is, but I see scenarios >>> requiring a different configuration (e.g. all endpoints, belonging to >>> the same wsdl service, to be updated using the configured EndpointInfo >>> published url property before writing the wsdl definition and >>> returning it for the current query). >>> >>> Cheers >>> Alessio >>> >>> On 12/03/2012 05:56 PM, Andrei Shakirin wrote: >>>> Hi Ivan, >>>> >>>> I can imagine that in some cases it makes sense to update all WSDL >>> service endpoints, but I wouldn't configure it by default. >>>> We can introduce additional context property >>> "rewriteSoapAddressForAllServices" (like autoRewriteSoapAddress , >>> publishedEndpointUrl) and if it is activated, endpoint of all relevant >>> services will be updated. Default value will be false. >>>> Logic located in WSDLGetUtils.updateDoc(). >>>> >>>> Cheers, >>>> Andrei. >>>> >>>>> -----Original Message----- >>>>> From: Ivan [mailto:[email protected]] >>>>> Sent: Sonntag, 2. Dezember 2012 16:08 >>>>> To: [email protected] >>>>> Subject: Re: service location in WSDL generated by CXF >>>>> >>>>> Well, I agree that, the accessing address for other ports may not >>> correct >>>>> in some scenarios. While thinking the common usage in the Java EE >>>>> environment, we usually publish those endpoints in one web app, and >>>>> the target web app will be accessed in one host, which associated >>>>> with web connectors. So, I am thinking that this is a good idea, >>>>> and maybe a flag could be used to determine the behavior. >>>>> >>>>> I added the similar function in Apache Geronimo, and think that it >>>>> will >>> be >>>>> better that CXF could provide kind of native support for this. >>>>> [1] >>>>> https://svn.apache.org/repos/asf/geronimo/server/branches/3.0/plugi >>>>> ns/a >>>>> xis2/geronimo- >>>>> >> axis2/src/main/java/org/apache/geronimo/axis2/WSDLQueryHandler.java >>>>> >>>>> Thoughts ? >>>>> >>>>> 2012/11/29 Andrei Shakirin <[email protected]> >>>>> >>>>>> Proposed update of all services endpoints can be in some cases >>> incorrect. >>>>>> The absolute endpoint URL can be determined only from incoming >> request. >>>>> As >>>>>> far as you request InventoryService, not InventoryProvider; only >>>>>> InventoryService endpoint is updated. >>>>>> Imagine, you request InventoryProvider using other URL (for >>>>>> example http://127.0.0.1:9080/jaxws-wsdlfaults2/InventoryProvider, >>>>>> or even >>> using >>>>>> other port) and InventoryProvider will have absolute URL different >>>>>> as InventoryService. >>>>>> >>>>>> Cheers, >>>>>> Andrei. >>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Bin Zhu [mailto:[email protected]] >>>>>>> Sent: Dienstag, 27. November 2012 07:30 >>>>>>> To: [email protected] >>>>>>> Subject: service location in WSDL generated by CXF >>>>>>> >>>>>>> Hi All, >>>>>>> I find that when define 2 service using a SEI class and a Service >>>>>> provider class, >>>>>>> if query the service defined by SEI, then in the WSDL generated >>>>>>> by >>> CXF, >>>>>> it will >>>>>>> only update the service location for this SEI service, but the >>> location >>>>>> defined >>>>>>> by service provider will not be updated. >>>>>>> Is this behavior as design? Could it update all the service >>>>>>> location >>>>>> rather than >>>>>>> only the requested one? Thanks in advance. >>>>>>> >>>>>>> Service defined by SEI: >>>>>>> >> @WebService(targetNamespace="http://inventory.wsdlfaults.jaxws", >>>>>>> wsdlLocation="WEB-INF/wsdl/Inventory.wsdl", >>>>>>> serviceName="InventoryService", >>>>>>> portName="InventoryPort", >>>>>>> >>>>>>> >>>>> >>> endpointInterface="jaxws.wsdlfaults.wsfvt.server.inventory.InventoryPo >>> rtT >>>>>>> ype") >>>>>>> Service defined by Service Provider: >>>>>>> >>>>> >> @WebServiceProvider(targetNamespace="http://inventory.wsdlfaults.ja >>>>> xw >>>>>>> s", >>>>>>> wsdlLocation="WEB-INF/wsdl/Inventory.wsdl", >>>>>>> serviceName="InventoryProvider", >>>>>>> portName="InventoryProviderPort") >>>>>>> >>>>>>> WSDL generated by CXF using this URL: >>>>>>> http://localhost:9080/jaxws-wsdlfaults2/InventoryService?wsdl >>>>>>> >>>>>>> <service name="InventoryService"> <port >>>>>>> binding="tns:InventoryBinding" name="InventoryPort"> >>>>>>> <soap:address location=" >>>>>>> http://localhost:9080/jaxws-wsdlfaults2/InventoryService >>>>>> "></soap:address> >>>>>>> </port> >>>>>>> </service> >>>>>>> <service name="InventoryProvider"> <port >>>>>>> binding="tns:InventoryBinding" name="InventoryProviderPort"> >>>>>>> <soap:address location="/InventoryProvider"></soap:address> >>>>>>> </port> >>>>>>> </service> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Ivan >>> >>> >>> -- >>> Alessio Soldano >>> Web Service Lead, JBoss >>> -- Alessio Soldano Web Service Lead, JBoss
