cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brent Moore <brent_mo...@byu.edu>
Subject Re: WSDL First Development Cycle - specifically wsdl:port address question
Date Tue, 01 Apr 2008 22:24:14 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
It seems that with the three services listed below the wsdl files are
part of a repository of available services hosted on a different site
than the actual service itself.  In that context it makes sense that
the services don't match the url of the wsdl.  But if a service is
asked for it's wsdl, it should return one that is accurate including
the address of the service.  Having an accurate address seems to me to
be rather important in that any automated tool would use that address
as the endpoint to call, just as if I used the wsdl from any of the
repositories.  <br>
<br>
Thanks for the help,<br>
<br>
Brent<br>
<br>
<br>
<br>
Glen Mazza wrote:
<blockquote cite="mid:1207087708.9684.21.camel@gmazza-desktop"
 type="cite">
  <pre wrap="">I haven't given this much thought before but I'm not sure why it matters
what the address is in the WSDL that is sent from the service to the
client.  By virtue of the fact that the client accessed the service
using the ...?wsdl URL in order to get the WSDL to begin with, it
already knows what URL to use to get to the web service--the same one it
used to get the WSDL.  Furthermore, it arguably should not use the URL
in the downloaded WSDL at that stage.  Might that not be a
security/safety risk?

For the following three web services below from commercial companies,
none of the URLs in the soap:address match that of the URL used to get
the WSDL.  (Or am I missing something?)

[1] <a class="moz-txt-link-freetext" href="http://developer.ebay.com/webservices/latest/ShoppingService.wsdl">http://developer.ebay.com/webservices/latest/ShoppingService.wsdl</a>
[2] <a class="moz-txt-link-freetext" href="http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL">http://sdpwsparam.strikeiron.com/sdpNFLTeams?WSDL</a>
[3]
<a class="moz-txt-link-freetext" href="http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl">http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl</a>?

Regards,
Glen


Am Dienstag, den 01.04.2008, 15:31 -0600 schrieb Brent Moore:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Dan,

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.  

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.


[1] <a class="moz-txt-link-freetext" href="http://jira.codehaus.org/browse/CXF-1497">http://jira.codehaus.org/browse/CXF-1497</a>



Thanks for the help.


Brent

Daniel Kulp wrote: 
    </pre>
    <blockquote type="cite">
      <pre wrap="">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:
  
      </pre>
      <blockquote type="cite">
        <pre wrap="">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:
    
        </pre>
        <blockquote type="cite">
          <pre wrap="">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] <a class="moz-txt-link-freetext" href="http://www.jroller.com/gmazza/date/20071019#notes">http://www.jroller.com/gmazza/date/20071019#notes</a>
[2] <a class="moz-txt-link-freetext" href="http://www.jroller.com/gmazza/entry/using_the_ebay_shopping_api1">http://www.jroller.com/gmazza/entry/using_the_ebay_shopping_api1</a>
      
          </pre>
        </blockquote>
      </blockquote>
      <pre wrap="">

  
      </pre>
    </blockquote>
    <pre wrap="">-- 
*********************************
Brent Moore
Platform Engineering
Office of Information Technology
Brigham Young University

Character is what you have left when
you've lost everything you can lose.
  - Evan Esar
********************************
    </pre>
  </blockquote>
  <pre wrap=""><!---->


  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
*********************************
Brent Moore
Platform Engineering
Office of Information Technology
Brigham Young University

Character is what you have left when
you've lost everything you can lose.
  - Evan Esar
********************************
</pre>
</body>
</html>

Mime
View raw message