Andrea Smyth wrote:
Glynn, Eoghan wrote:

Back in the day, I'm pretty sure that the port-specific config had
*both* the service and the port names encoded in the bean ID.
The syntax was something like
{http://foo.bar/context}SomeService/SomePort.whatever

I'm not sure though if its still possible to specify the service name in
this way, and if not what the motivation was for changing this.
Can't remember either, one reason may have been the readability of bean file (the long bean names are far from ideal) trading the flexibility of being able to configure conduits on a per endpoint basis for shorter names and only being able to configure conduits on a per port name basis.

Isn't this approach sort of like trying to bomb "200 Main St." without naming the Country, City, etc? Bad things might happen, no?

I know, it's all about the "context". But in the general case, in order to get config to work, you'd be naming Ports redundantly with the service name in order to delineate them. Furthermore, as a client devouring the WSDL, I don't think you really have the ability to redefine the WSDL dynamically so you can make it fit your config file.

There seem to be quite logical delineation points for uniquely (as best one can) naming a conduit/destination, and that's.

1. Namespace URI
2. Service Name
3, Port Name

I think eliminating (2) from the name is going to cause trouble down the line, as has already been found out.

Cheers,
-Polar
It's easy enough to change though: in HTTPConduit.getBeanName(), prefix the current bean name with
endpointInfo.getServiceInfo().getName().toString() + "." + ...
Same in AbstractHTTPDestination.
Existing bean files (samples, tests ...) need to be updated.

Andrea.

/Eoghan

-----Original Message-----
From: Fred Dushin [mailto:[EMAIL PROTECTED] Sent: 05 April 2007 01:30
To: [email protected]
Subject: http-(conduit|destination) cfg


The CXF https sample has bean configurations of the form:

<bean name="{http://foo.bar/context}SomePort.http-conduit"; ...> <bean name="{http://foo.bar/context}SomePort.http-destination"; ...>

I'm trying to get a grip on the name parameter here, and its semantics.

I understand and fully appreciate the idea that this lets you do configuration on a per-endpoint basis, but I think I might be missing something about what an endpoint is, in WSDL. I was always under the impression that an endpoint is more or less a pair of QNames -- a service qname and a port (q)name. Isn't that right?

The config above seems to either ignore the service, or it chooses a default, somehow.

E.g., what would happen if your services section was something like:

    <wsdl:service name="ServiceA">
        <wsdl:port binding="tns:SomeBinding" name="PortA">
            <soap:address location="..."/>
        </wsdl:port>
    </wsdl:service>

    <wsdl:service name="ServiceB">
<wsdl:port binding="tns:SomeBinding" name="PortA"> <!-- not a typo -->
            <soap:address location="..."/>
        </wsdl:port>
    </wsdl:service>

I.e., 2 distinct services have the same port name. Is this prohibited in WSDL? If not, is there an alternate syntax for conduits and destinations that allows you to specify the service in which a port is defined?

Again, apologies for the naive questions. If you'd prefer, you can tell me to go RTFS.

-Fred



Reply via email to