[ http://issues.apache.org/jira/browse/AXIS-1978?page=all ] Venkat Reddy resolved AXIS-1978: --------------------------------
Resolution: Fixed Checked in the patch. Thanks Eric. > Invalid code generated in JavaServiceImplWriter w/multiple ports > ---------------------------------------------------------------- > > Key: AXIS-1978 > URL: http://issues.apache.org/jira/browse/AXIS-1978 > Project: Axis > Type: Bug > Components: WSDL processing > Environment: N/A > Reporter: Eric Hardesty > Priority: Minor > > The code generated by writeSetEndpointAddress in JavaServiceImplWriter is > incorrect if multiple ports are included for a service. The code needs to be > similar to writeGetPortQNameClass where the else is included at the end of > the if statement. Below I have a sample an example of the WSDL, generated > Locator & patch file(untested at this time): > WSDL: > <service name="HooXEndpointInterfaceService"> > <port binding="impl:HooXEndpointHooxBinding" name="hooxEndpoint3"> > <wsdlsoap:address > location="http://localhost:9000/hooxsample/hooxEndpoint1/hooxEndpoint1"/> > </port> > <port binding="impl:HooXEndpointHooxBinding" name="hooxEndpoint2"> > <wsdlsoap:address > location="http://localhost:9000/hooxsample/hooxEndpoint1/hooxEndpoint1"/> > </port> > <port binding="impl:HooXEndpointSoapBinding" name="hooxEndpoint1"> > <wsdlsoap:address > location="http://localhost:9000/hooxsample/hooxEndpoint1/hooxEndpoint1"/> > </port> > </service> > HooXEndpointInterfaceServiceLocator: > /** > * Set the endpoint address for the specified port name. > */ > public void setEndpointAddress(java.lang.String portName, > java.lang.String address) throws javax.xml.rpc.ServiceException { > if ("hooxEndpoint3".equals(portName)) { > sethooxEndpoint3EndpointAddress(address); > } > if ("hooxEndpoint1".equals(portName)) { > sethooxEndpoint1EndpointAddress(address); > } > if ("hooxEndpoint2".equals(portName)) { > sethooxEndpoint2EndpointAddress(address); > } > else { // Unknown Port Name > throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint > Address for Unknown Port" + portName); > } > Patch: > Index: JavaServiceImplWriter.java > =================================================================== > RCS file: > /home/cvspublic/ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaServiceImplWriter.java,v > retrieving revision 1.44 > diff -u -r1.44 JavaServiceImplWriter.java > --- JavaServiceImplWriter.java 20 Jan 2005 21:35:22 -0000 1.44 > +++ JavaServiceImplWriter.java 5 May 2005 22:54:48 -0000 > @@ -601,15 +601,18 @@ > " public void setEndpointAddress(java.lang.String > portName, java.lang.String address) throws " > + javax.xml.rpc.ServiceException.class.getName() + " {"); > > + pw.print(" "); > for (Iterator p = portNames.iterator(); p.hasNext();) { > String name = (String) p.next(); > > - pw.println(" if (\"" + name + "\".equals(portName)) {"); > + pw.println("if (\"" + name + "\".equals(portName)) {"); > pw.println(" set" + name + > "EndpointAddress(address);"); > pw.println(" }"); > + pw.print(" else "); > } > > - pw.println(" else { // Unknown Port Name"); > + pw.println(" { // Unknown Port Name"); > + > pw.println(" throw new " > + javax.xml.rpc.ServiceException.class.getName() + "(\" " > + Messages.getMessage("unknownPortName") -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira