Thanks Alessio :-) 2012/12/10 Alessio Soldano <[email protected]>
> Hi Bin, > just read your message (Friday was bank holiday here). I'll check your > patch and improve my fix to cover your scenario too. > Will create a new jira and link to the current one, as the release > process for 2.7.1 has been started in the meantime. > Cheers > Alessio > > On 12/07/2012 09:28 AM, Bin Zhu wrote: > > Hi Alessio, > > > > I've attached the patch here > > https://issues.apache.org/jira/secure/attachment/12559830/CXF-4677.patch > > Can you help review it? Thanks. > > > > > > 2012/12/6 Alessio Soldano <[email protected]> > > > >> Hi Bin, > >> ok, either commit or attach an additional patch to CXF-4677 jira and let > >> me review before the upcoming release ;-) > >> > >> Alessio > >> > >> On 12/06/2012 08:23 AM, Bin Zhu wrote: > >>> Hi, > >>> > >>> Thanks for the quick response. I've tried this patch but it doesn't > >> update > >>> all the soapaddress locations in my test. > >>> > >>> Looked into the code and find that reason is an Exception will be throw > >> in > >>> the following line in new added > >> WSDLGetUtils.rewriteAddressProtocolHostPort > >>> method: > >>> URL locUrl = new URL(location); // Exception will be thrown in this > line > >>> since the value of location is like"/InventoryService" > >>> > >>> It is suggested to get the http base path by using " String basePath = > >>> (String) message.get("http.base.path")" in rewriteAllSoapAddress logic, > >>> then append it to the soapaddress location > >>> in WSDLGetUtils.rewriteAddressProtocolHostPort method. > >>> > >>> I made the changes and it works in my local box. I would like to make > >> this > >>> fix if you don't mind. Thanks. > >>> > >>> > >>> > >>> 2012/12/5 Alessio Soldano <[email protected]> > >>> > >>>> 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 > >>>> > >>> > >> > >> > >> -- > >> Alessio Soldano > >> Web Service Lead, JBoss > >> > > > > > -- > Alessio Soldano > Web Service Lead, JBoss >
