I may be wrong about this, but I believe cxf defines an endpointURL value which overrides the default behaviour with respect to wsdl/soap:address.
I did a bit of reading around this a month or two back, and it seemed to be pretty well documented. Cheers Dave On Tue, Feb 15, 2011 at 8:54 AM, David Jencks <[email protected]>wrote: > Sorry for the delay. > > We might look at what cxf does in this situation since they certainly have > more ws experience than I do :-) > > I think we should consider configuring geronimo rather than the proxy > servers. After discussing this a bit with ashish I think the following > might work: > > define a wsdl rewriting service (gbean for g 2.x) that can be configured > with the header containing the actual host/port and by default uses the > httpd X-Forwarded-Host. (if the header isn't present it uses the host from > the request as at present). > > The ws-specific object gets a reference to this service (gbean) and has it > do the rewriting. > > We can presumably use the same code for axis2, cxf (if necessary) and > axis1. > > Comments? > > thanks > david jencks > > On Feb 10, 2011, at 10:54 PM, Ashish Jain wrote: > > Hi David, > > Your bit on configuring the header can be another way. We can use a > standard header name for this for example FrontEnd-Proxy-HostPort or may be > some other name. HTTP Server provides a directive where custom headers can > be appended to the requests. > http://httpd.apache.org/docs/current/mod/mod_headers.html#requestheader > > I am very much hopeful that other HTTP servers will also provide a way to > configure custom headers. > So this option is also very much acceptable. > > Thanks > Ashish > > On Thu, Feb 10, 2011 at 10:44 PM, David Jencks <[email protected]>wrote: > >> Hi Ashish, >> >> I was certainly thinking of X-Forwarded-Host. I'm not clear on whether >> this header includes the original port. Google hasn't shown me much info on >> how other people deal with this problem. I did find >> http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypreservehost >> >> which appears to indicate you can configure apache httpd to not introduce >> this problem in the first place. >> >> I can see that directly configuring the host would be useful in some >> circumstances, but I think it would be easier in more circumstances to be >> able to configure the header name for the original host. >> >> So I guess you are right and directly configuring the host is the best >> solution for now. I'll let you know if I can find any more information on >> this. >> >> thanks! >> david jencks >> >> On Feb 10, 2011, at 6:28 AM, Ashish Jain wrote: >> >> Hi David, >> >> I am not sure if we can use the request object. The request >> (org.apache.geronimo.webservices.WebServiceContainer.Request) object gives >> you the address for the remote host which is the address for the proxy >> server, however no information on the port. Another way could have been to >> utilize the header "request.getHeader("X-Forwarded-Host")" but this is not a >> standard header AFAIK. So this option can also to be ruled out. So I think >> modifying the schema is the best way ahead. >> >> Thanks >> Ashish >> >> On Tue, Feb 8, 2011 at 6:34 PM, Ashish Jain <[email protected]> wrote: >> >>> Thanks David and Jarek. I am investigating on the comment made by David >>> and seems to have found some headers which are being appended by HTTP >>> server. I will investigate further in this direction to find out if the >>> request object can be used to attain this. >>> >>> Thanks >>> Ashish >>> >>> >>> On Tue, Feb 8, 2011 at 1:06 AM, David Jencks <[email protected]>wrote: >>> >>>> Changing the schema like this shouldn't be a problem if its necessary. >>>> I'd like to understand better why its necessary. Perhaps there's another >>>> way. >>>> >>>> I thought that the way this was coded was that the host and port from >>>> the incoming request were stuffed into the wsdl being returned. Doesn't >>>> the >>>> proxy server tell us what the original request was in some way such as a >>>> request attribute? Could we look for that information and use it if >>>> available and use the request itself if not? >>>> >>>> thanks >>>> david jencks >>>> >>>> On Feb 7, 2011, at 10:39 AM, Jarek Gawor wrote: >>>> >>>> > Ashish, >>>> > >>>> > Modifying the schema (without changing the namespace) is fine as long >>>> > as you make the new element(s) optional. That at least is what we have >>>> > done in the past. >>>> > >>>> > Jarek >>>> > >>>> > On Fri, Jan 28, 2011 at 10:00 AM, Ashish Jain <[email protected]> >>>> wrote: >>>> >> Hi, >>>> >> >>>> >> When geronimo is front ended with a proxy say Apache HTTP server and >>>> a web >>>> >> service is invoked via this proxy. The auto >>>> >> generated wsdl will have the soap:address as >>>> >> http://<g_host>:<g_port>/service_name. Instead it should be >>>> >> http://<proxy_host>: >>>> >> <proxy:port>/service_name. The method which takes care of all this is >>>> >> org.apache.geronimo.axis2.WSDLQueryHandler.writeResponse >>>> >> . The baseUri attribute in the class has to be modified so that >>>> appropriate >>>> >> soap:address can be written in the wsdl file. >>>> >> >>>> >> So as to get this property into geronimo one of the way would be to >>>> be able >>>> >> to specify in geronimo deployment descriptor. >>>> >> Adding a new attribute may require schema change. >>>> >> >>>> >> Is this acceptable? Are there any other alternative ways through >>>> which this >>>> >> can be achieved? >>>> >> >>>> >> Thanks >>>> >> Ashish >>>> >> >>>> >>>> >>> >> >> > > -- Cheers, Dave
