[ 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