axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ias" <iasan...@tmax.co.kr>
Subject RE: cvs commit: ws-axis/java/src/org/apache/axis/client Service.j ava
Date Thu, 04 Dec 2003 15:23:13 GMT
First of all, according to 
---
A reference to a WSDL definition is made using a QName. The following types
of definitions contained in a WSDL document may be referenced:

WSDL definitions: service, port, message, bindings, and portType 
                                       ^^^^^
Other definitions: if additional definitions are added via extensibility,
they SHOULD use QName linking. 
Each WSDL definition type listed above has its own name scope (i.e. port
names and message names never conflict). Names within a name scope MUST be
unique within the WSDL document. 

The resolution of QNames in WSDL is similar to the resolution of QNames
described by the XML Schemas specification [11].

(http://www.w3.org/TR/wsdl#_document-n)
---
Port is looked up by a QName.

> 
> Correction, from http://www.w3.org/TR/wsdl#_ports  "The name 
> attribute provides a unique name among all ports defined 
> within in the enclosing WSDL document."
> 
> So a String name IS enough to identify a port in a WSDL document.
> JAX-RPC should not be using QNames.
> 

In http://www.w3.org/TR/wsdl#_services , 
---
The name attribute provides a unique name among all services defined within
in the enclosing WSDL document.
---
This concept is the same as that of Port, but the name of a Service is
presented by QName in WSDL4J and JAX-RPC.

Sanjiva co-authored WSDL 1.1 spec, so maybe he has a good translation for
this issue.

Thanks for your response,

Ias

> Go figure.
> 
> --
> Tom Jordahl
> Macromedia Server Development
> 
> -----Original Message-----
> From: Tom Jordahl [mailto:tomj@macromedia.com]
> Sent: Thursday, December 04, 2003 9:30 AM
> To: 'axis-dev@ws.apache.org'
> Subject: RE: cvs commit: 
> ws-axis/java/src/org/apache/axis/client Service.j ava
> 
> 
> This is a weird area as the port name attribute is NOT a 
> QName.  It is an
> NCName.  
> 
> You must have a service in order for the port name to be 
> meaningful. So I
> believe the ports should be referred to by a String, not a 
> QName.  I think
> JAX-RPC might have this wrong.
> 
> --
> Tom Jordahl
> Macromedia Server Development
> 
> -----Original Message-----
> From: Ias [mailto:iasandcb@tmax.co.kr] 
> Sent: Thursday, December 04, 2003 12:34 AM
> To: axis-dev@ws.apache.org
> Cc: ???
> Subject: RE: cvs commit: ws-axis/java/src/org/apache/axis/client
> Service.java
> 
> Thanks to Aaron and Tom for resolving this issue that once I 
> had thought of
> for a while. Fundamentally, WSDL4J should return port name as QName
> according to WSDL spec 1.1 "2.1.1 Document Naming and 
> Linking" described at
> http://www.w3.org/TR/wsdl#_document-n . Can't we suggest the essential
> change to javax.wsdl.Port to WSDL4J team?
> 
> Ias
> 
> =========================================================
> Lee, Changshin (Korean name)
> Ias (International name)
>                Company Web Site: http://www.tmax.co.kr
>                Personal Web Site: http://www.iasandcb.pe.kr
> ---------------------------------------------------------
> JSR 201, JSR 204 and JSR 222 EG member
> Apache Axis (JAX-RPC and SAAJ) and JaxMe (JAXB) committer
> R&D Institute
> Tmax Soft, Inc.
> ========================================================= 
> 
> > -----Original Message-----
> > From: tomj@apache.org [mailto:tomj@apache.org] 
> > Sent: Thursday, December 04, 2003 4:36 AM
> > To: ws-axis-cvs@apache.org
> > Subject: cvs commit: ws-axis/java/src/org/apache/axis/client 
> > Service.java
> > 
> > tomj        2003/12/03 11:36:29
> > 
> >   Modified:    java/src/org/apache/axis/client Service.java
> >   Log:
> >   Patches submitted by Aaron Hamid (arh14@cornell.edu)
> >   
> >   Bug 25170:
> >   org.apache.axis.client.Service.getPorts does not return 
> > QName as per JAX-RPC spec, but java.lang.String instead
> >    http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25170
> >   
> >   Bug 25173
> >   Namespace is significant for port QNames used in 
> > HandlerRegistry mappings
> >   http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25173
> >   
> >   Revision  Changes    Path
> >   1.93      +26 -3     
> > ws-axis/java/src/org/apache/axis/client/Service.java
> >   
> >   Index: Service.java
> >   
> ===================================================================
> >   RCS file: 
> > /home/cvs/ws-axis/java/src/org/apache/axis/client/Service.java,v
> >   retrieving revision 1.92
> >   retrieving revision 1.93
> >   diff -u -r1.92 -r1.93
> >   --- Service.java	20 Nov 2003 06:22:56 -0000	1.92
> >   +++ Service.java	3 Dec 2003 19:36:29 -0000	1.93
> >   @@ -671,7 +671,27 @@
> >                // Return an empty iterator;
> >                return new Vector().iterator();
> >            }
> >   -        return wsdlService.getPorts().keySet().iterator();
> >   +
> >   +        Map portmap = wsdlService.getPorts();
> >   +        List portlist = new java.util.ArrayList(portmap.size());
> >   +        // we could simply iterate over keys instead and skip
> >   +        // the lookup, but while keys are probably the same as
> >   +        // port names, the documentation does not make any
> >   +        // guarantee on this, so we'll just play it safe
> >   +        // Aaron Hamid
> >   +        Iterator portiterator = portmap.values().iterator();
> >   +        while (portiterator.hasNext()) {
> >   +          Port port = (Port) portiterator.next();
> >   +          // maybe we should use 
> > Definition.getTargetNamespace() here,
> >   +          // but this class does not hold a reference to 
> > the object,
> >   +          // so we'll just use the namespace of the 
> service's QName
> >   +          // (it should all be the same wsdl 
> > targetnamespace value, right?)
> >   +          // Aaron Hamid
> >   +          portlist.add(new 
> > QName(wsdlService.getQName().getNamespaceURI(), port.getName()));
> >   +        }
> >   +
> >   +        // ok, return the real list of QNames
> >   +        return portlist.iterator();
> >        }
> >    
> >        /**
> >   @@ -849,7 +869,9 @@
> >            Map map = new HashMap();
> >    
> >            public List getHandlerChain(QName portName) {
> >   -            List list = (List) map.get(portName);
> >   +            // namespace is not significant, so use local 
> > part directly
> >   +            String key = portName.getLocalPart();
> >   +            List list = (List) map.get(key);
> >                if (list == null) {
> >                    list = new java.util.ArrayList();
> >                    setHandlerChain(portName, list);
> >   @@ -858,7 +880,8 @@
> >            }
> >    
> >            public void setHandlerChain(QName portName, List chain) {
> >   -            map.put(portName, chain);
> >   +            // namespace is not significant, so use local 
> > part directly
> >   +            map.put(portName.getLocalPart(), chain);
> >            }
> >        }
> >    
> >   
> >   
> >   
> > 
> 


Mime
View raw message