Brent, On Tuesday 01 April 2008, Brent Moore wrote: > I've created a JIRA [1] with an attached war for an echo service that > exhibits the behavior I'm talking about. If I understand you > correctly, the "bogushost" address should be replaced with the real > address of the service. But at least on my tomcat 5.5.23 it doesn't > happen.
I looked at the war and can duplicate the issue. I probably won't have a chance to dig into the code and find out what is going on until Friday though. (meetings) Couple quite thoughts: 1) As Glenn said, try using WEB-INF/wsdl/... for the wsdlLocation. 2) Put SOMETHING valid in the wsdls soap:address. Just put in "http://localhost:8080/" or something. We MIGHT be trying to parse whats there or something and your blank location might be confusing it. Anyway, I can dig into it more on Friday to figure out really what it going on. > Once it does happen, is there a way to influence which of the aliases > for the box it uses? Some of our boxes serve multiple virtual hosts. It will use the URL from the incoming request. For example, if you hit localhost:8080, that is what will appear in the returned wsdl. If you hit "myhost.com", that is what will appear. Dan > > [1] http://jira.codehaus.org/browse/CXF-1497 > > > Thanks for the help. > > > Brent > > Daniel Kulp wrote: > If the client is grabbing the wsdl view the ?wsdl flag to the > endpoint, it SHOULD be getting a modified wsdl that has the proper > address in it. If that's not the case, that might be a bug, but it's > probably a configuration issue as I know we have several tests that > test this (and the TCK requires it to work). Thus, I'd probably like > to see a war that demonstrates this. > > Also, the client can always be reconfigured post-creation to hit any > url you give it. It DOESN'T need to use the url in the wsdl. If > the container can provide a new URL, just set the > ENDPOINT_ADDRESS_PROPERY thing on the client's request context and it > will use that address instead. > > Dan > > > > On Tuesday 01 April 2008, bdm wrote: > > Glen, > > Thanks for the response but I may not have been clear on what I'm > trying to accomplish. > > In our normal development life cycle, once code (a .war file in this > case) leaves development for test and production we do not change > anything in the code or the accompanying configuration files (spring > context, etc). All of the differences in the environments (database > connections, etc) are handled by the container - tomcat in this case. > We would like to implement the same type of configuration with our web > service deployments. > > In [1] - the last sentence of note 4 reads - "Note the URL specified > in the wsdl:port section (under wsdl:service) is ignored by the > servlet container. It is used, however, by the web service client > which reads in this WSDL to determine where to route the requests." > > This is exactly the problem. Yes the web service deploys correctly > and the servlet container ignores the address given in the provided > WSDL. But, the WSDL is delivered unmodified to any requesting client > with the address given in the WSDL and not the address of the service. > I tried this yesterday one last time before posting to the list using > 2.0.4 of CXF. > > I'm not sure if that is a bug or a feature, I'm just trying to figure > out how to implement our standard practice given the current behavior > of CXF. > > Brent > > Glen Mazza-2 wrote: > > Note #4 of here[1] shows how the WSDL URL is created when you deploy > to an application server; as you can see, what you have in the wsdl > file is pretty much ignored web-service provider side. > > For the client, it is just an issue of modifying the > ENDPOINT_ADDRESS_PROPERTY as shown in Step #7 here[2]. You can use > Spring Dependency Injection for that if helpful. > > Glen > > [1] http://www.jroller.com/gmazza/date/20071019#notes > [2] http://www.jroller.com/gmazza/entry/using_the_ebay_shopping_api1 -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
