axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 27247] New: - "OperationDesc " error at runtime - when overloading methods
Date Thu, 26 Feb 2004 11:03:27 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27247>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27247

"OperationDesc " error at runtime - when overloading methods

           Summary: "OperationDesc " error at runtime - when overloading
                    methods
           Product: Axis
           Version: 1.1
          Platform: Other
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@ws.apache.org
        ReportedBy: rwg@soton.ac.uk


I have a Web Service - it was working, I added a new method
and I get the problems below trying to view it's wsdl (http:...
/services/Graph?wsdl).  

It looks like a bug in the handling of overloaded methods to do with
multi-dimension arrays ?


If I rename the new method to say makePlotxy - the problem goes away:
---- relevant part of wsdl (i.e. new method that breaks things) 
---------------------------

- <wsdl:operation name="makePlot" parameterOrder="xi yi opt">
  <wsdl:input message="intf:makePlotxyRequest" name="makePlotxyRequest" /> 
  <wsdl:output message="intf:makePlotxyResponse" name="makePlotxyResponse" /> 
  </wsdl:operation>

-------------- Graph.java (easy way to see methods) -------------
/**
 * Graph.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis WSDL2Java emitter.
 */
package uk.ac.soton.escience.hydroflex.plotting;

public interface Graph extends java.rmi.Remote {
    public byte[] makePlot(double[] xi, double[][] yi,
uk.ac.soton.escience.hydroflex.plotting.PlotOptions opt) throws
java.rmi.RemoteException;
    public byte[] makePlot(double[] xi, java.util.Vector yi,
uk.ac.soton.escience.hydroflex.plotting.PlotOptions opt) throws
java.rmi.RemoteException;
    public byte[] makePlot(double[] xi, double[] yi,
uk.ac.soton.escience.hydroflex.plotting.PlotOptions opt) throws
java.rmi.RemoteException;
    public byte[] makePlot(double[] xi,
uk.ac.soton.escience.hydroflex.plotting.PlotOptions opt) throws
java.rmi.RemoteException;
    public byte[] makePlotxy(double[][] xi, double[][] yi,
uk.ac.soton.escience.hydroflex.plotting.PlotOptions opt) throws
java.rmi.RemoteException;
}
--------------------------------------------------------------

----------------- wsdl that's ok (change makePlotxy to makePlot to get the
error) --------------------------

<?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions
targetNamespace="http://plotting.hydroflex.escience.soton.ac.uk"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://plotting.hydroflex.escience.soton.ac.uk"
xmlns:intf="http://plotting.hydroflex.escience.soton.ac.uk"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema targetNamespace="http://plotting.hydroflex.escience.soton.ac.uk"
xmlns="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
- <simpleType name="KeyPlacement">
- <restriction base="xsd:string">
  <enumeration value="outside" /> 
  <enumeration value="below" /> 
  <enumeration value="bottom" /> 
  <enumeration value="top" /> 
  <enumeration value="right bottom" /> 
  <enumeration value="right top" /> 
  <enumeration value="right" /> 
  <enumeration value="left bottom" /> 
  <enumeration value="left top" /> 
  <enumeration value="left" /> 
  </restriction>
  </simpleType>
- <complexType name="KeyBox">
- <sequence>
  <element name="LineStyle" nillable="true" type="xsd:int" /> 
  <element name="LineType" nillable="true" type="xsd:int" /> 
  <element name="LineWidth" nillable="true" type="xsd:double" /> 
  </sequence>
  </complexType>
- <simpleType name="KeyJustification">
- <restriction base="xsd:string">
  <enumeration value="right" /> 
  <enumeration value="left" /> 
  </restriction>
  </simpleType>
- <simpleType name="DrawingType">
- <restriction base="xsd:string">
  <enumeration value="PointsAndLines" /> 
  <enumeration value="Lines" /> 
  <enumeration value="Points" /> 
  </restriction>
  </simpleType>
- <complexType name="DrawingStyle">
- <sequence>
  <element name="lineWidth" nillable="true" type="xsd:double" /> 
  <element name="index" nillable="true" type="xsd:int" /> 
  <element name="type" nillable="true" type="impl:DrawingType" /> 
  <element name="lineType" nillable="true" type="xsd:int" /> 
  <element name="pointSize" nillable="true" type="xsd:double" /> 
  <element name="pointType" nillable="true" type="xsd:int" /> 
  <element name="title" nillable="true" type="xsd:string" /> 
  </sequence>
  </complexType>
- <complexType name="TicOptions">
- <sequence>
  <element name="DirectionIn" nillable="true" type="xsd:boolean" /> 
  <element name="MajorScale" nillable="true" type="xsd:double" /> 
  <element name="MinorScale" nillable="true" type="xsd:double" /> 
  </sequence>
  </complexType>
- <complexType name="GridOptions">
- <sequence>
  <element name="xtics" nillable="true" type="xsd:boolean" /> 
  <element name="ytics" nillable="true" type="xsd:boolean" /> 
  <element name="minor_xtics" nillable="true" type="xsd:boolean" /> 
  <element name="minor_ytics" nillable="true" type="xsd:boolean" /> 
  <element name="xticsInterval" nillable="true" type="xsd:double" /> 
  <element name="yticsInterval" nillable="true" type="xsd:double" /> 
  </sequence>
  </complexType>
- <simpleType name="AnglesUnits">
- <restriction base="xsd:string">
  <enumeration value="radians" /> 
  <enumeration value="degrees" /> 
  </restriction>
  </simpleType>
- <simpleType name="Smoothing">
- <restriction base="xsd:string">
  <enumeration value="cspline" /> 
  <enumeration value="none" /> 
  </restriction>
  </simpleType>
- <simpleType name="TerminalTypes">
- <restriction base="xsd:string">
  <enumeration value="eps" /> 
  <enumeration value="png" /> 
  <enumeration value="svg" /> 
  </restriction>
  </simpleType>
- <complexType name="ArrayOfDrawingStyle">
- <complexContent>
- <restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:DrawingStyle[]" /> 
  </restriction>
  </complexContent>
  </complexType>
- <complexType name="KeyOptions">
- <sequence>
  <element name="Placement" nillable="true" type="impl:KeyPlacement" /> 
  <element name="PositionX" nillable="true" type="xsd:double" /> 
  <element name="PositionY" nillable="true" type="xsd:double" /> 
  <element name="Justification" nillable="true" type="impl:KeyJustification" /> 
  <element name="Reversed" nillable="true" type="xsd:boolean" /> 
  <element name="Samplen" nillable="true" type="xsd:int" /> 
  <element name="VerticalSpacing" nillable="true" type="xsd:double" /> 
  <element name="Width" nillable="true" type="xsd:double" /> 
  <element name="Height" nillable="true" type="xsd:double" /> 
  <element name="Title" nillable="true" type="xsd:string" /> 
  <element name="Box" nillable="true" type="xsd:boolean" /> 
  <element name="BoxOptions" nillable="true" type="impl:KeyBox" /> 
  </sequence>
  </complexType>
- <simpleType name="LabelPlacement">
- <restriction base="xsd:string">
  <enumeration value="right" /> 
  <enumeration value="center" /> 
  <enumeration value="left" /> 
  </restriction>
  </simpleType>
- <complexType name="PolarLabel">
- <sequence>
  <element name="Text" nillable="true" type="xsd:string" /> 
  <element name="r" type="xsd:double" /> 
  <element name="angle" type="xsd:double" /> 
  <element name="Placement" nillable="true" type="impl:LabelPlacement" /> 
  </sequence>
  </complexType>
- <complexType name="PlotOptions">
- <sequence>
  <element name="Title" nillable="true" type="xsd:string" /> 
  <element name="XAxisLabel" nillable="true" type="xsd:string" /> 
  <element name="YAxisLabel" nillable="true" type="xsd:string" /> 
  <element name="XMin" nillable="true" type="xsd:double" /> 
  <element name="XMax" nillable="true" type="xsd:double" /> 
  <element name="YMin" nillable="true" type="xsd:double" /> 
  <element name="YMax" nillable="true" type="xsd:double" /> 
  <element name="PolarMin" nillable="true" type="xsd:double" /> 
  <element name="PolarMax" nillable="true" type="xsd:double" /> 
  <element name="XSize" nillable="true" type="xsd:int" /> 
  <element name="YSize" nillable="true" type="xsd:int" /> 
  <element name="XOrigin" nillable="true" type="xsd:double" /> 
  <element name="YOrigin" nillable="true" type="xsd:double" /> 
  <element name="OffsetTop" nillable="true" type="xsd:double" /> 
  <element name="OffsetBottom" nillable="true" type="xsd:double" /> 
  <element name="OffsetLeft" nillable="true" type="xsd:double" /> 
  <element name="OffsetRight" nillable="true" type="xsd:double" /> 
  <element name="Margin" nillable="true" type="xsd:double" /> 
  <element name="MarginLeft" nillable="true" type="xsd:double" /> 
  <element name="MarginRight" nillable="true" type="xsd:double" /> 
  <element name="MarginTop" nillable="true" type="xsd:double" /> 
  <element name="Smooth" nillable="true" type="impl:Smoothing" /> 
  <element name="MarginBottom" nillable="true" type="xsd:double" /> 
  <element name="XAxisFormat" nillable="true" type="xsd:string" /> 
  <element name="YAxisFormat" nillable="true" type="xsd:string" /> 
  <element name="XLogScale" nillable="true" type="xsd:boolean" /> 
  <element name="YLogScale" nillable="true" type="xsd:boolean" /> 
  <element name="OutputType" nillable="true" type="impl:TerminalTypes" /> 
  <element name="OutputCmdFile" nillable="true" type="xsd:boolean" /> 
  <element name="Styles" nillable="true" type="impl:ArrayOfDrawingStyle" /> 
  <element name="Key" nillable="true" type="impl:KeyOptions" /> 
  <element name="Grid" nillable="true" type="impl:GridOptions" /> 
  <element name="Tics" nillable="true" type="impl:TicOptions" /> 
  <element name="Polar" nillable="true" type="xsd:boolean" /> 
  <element name="AnglesUnits" nillable="true" type="impl:AnglesUnits" /> 
  <element name="sizeRatio" nillable="true" type="xsd:double" /> 
  <element maxOccurs="unbounded" minOccurs="0" name="label" nillable="true"
type="impl:PolarLabel" /> 
  </sequence>
  </complexType>
- <complexType name="ArrayOf_xsd_double">
- <complexContent>
- <restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:double[]" /> 
  </restriction>
  </complexContent>
  </complexType>
- <complexType name="ArrayOfArrayOf_xsd_double">
- <complexContent>
- <restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:double[][]" /> 
  </restriction>
  </complexContent>
  </complexType>
  </schema>
- <schema targetNamespace="http://xml.apache.org/xml-soap"
xmlns="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
- <complexType name="Vector">
- <sequence>
  <element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType" /> 
  </sequence>
  </complexType>
  </schema>
  </wsdl:types>
- <wsdl:message name="makePlotResponse1">
  <wsdl:part name="makePlotReturn" type="xsd:base64Binary" /> 
  </wsdl:message>
- <wsdl:message name="makePlotRequest3">
  <wsdl:part name="xi" type="intf:ArrayOf_xsd_double" /> 
  <wsdl:part name="opt" type="intf:PlotOptions" /> 
  </wsdl:message>
- <wsdl:message name="makePlotRequest2">
  <wsdl:part name="xi" type="intf:ArrayOf_xsd_double" /> 
  <wsdl:part name="yi" type="intf:ArrayOf_xsd_double" /> 
  <wsdl:part name="opt" type="intf:PlotOptions" /> 
  </wsdl:message>
- <wsdl:message name="makePlotResponse3">
  <wsdl:part name="makePlotReturn" type="xsd:base64Binary" /> 
  </wsdl:message>
- <wsdl:message name="makePlotResponse2">
  <wsdl:part name="makePlotReturn" type="xsd:base64Binary" /> 
  </wsdl:message>
- <wsdl:message name="makePlotRequest">
  <wsdl:part name="xi" type="intf:ArrayOf_xsd_double" /> 
  <wsdl:part name="yi" type="intf:ArrayOfArrayOf_xsd_double" /> 
  <wsdl:part name="opt" type="intf:PlotOptions" /> 
  </wsdl:message>
- <wsdl:message name="makePlotxyRequest">
  <wsdl:part name="xi" type="intf:ArrayOfArrayOf_xsd_double" /> 
  <wsdl:part name="yi" type="intf:ArrayOfArrayOf_xsd_double" /> 
  <wsdl:part name="opt" type="intf:PlotOptions" /> 
  </wsdl:message>
- <wsdl:message name="makePlotResponse">
  <wsdl:part name="makePlotReturn" type="xsd:base64Binary" /> 
  </wsdl:message>
- <wsdl:message name="makePlotxyResponse">
  <wsdl:part name="makePlotReturn" type="xsd:base64Binary" /> 
  </wsdl:message>
- <wsdl:message name="makePlotRequest1">
  <wsdl:part name="xi" type="intf:ArrayOf_xsd_double" /> 
  <wsdl:part name="yi" type="apachesoap:Vector" /> 
  <wsdl:part name="opt" type="intf:PlotOptions" /> 
  </wsdl:message>
- <wsdl:portType name="Graph">
- <wsdl:operation name="makePlot" parameterOrder="xi yi opt">
  <wsdl:input message="intf:makePlotRequest" name="makePlotRequest" /> 
  <wsdl:output message="intf:makePlotResponse" name="makePlotResponse" /> 
  </wsdl:operation>
- <wsdl:operation name="makePlot" parameterOrder="xi yi opt">
  <wsdl:input message="intf:makePlotRequest1" name="makePlotRequest1" /> 
  <wsdl:output message="intf:makePlotResponse1" name="makePlotResponse1" /> 
  </wsdl:operation>
- <wsdl:operation name="makePlot" parameterOrder="xi yi opt">
  <wsdl:input message="intf:makePlotRequest2" name="makePlotRequest2" /> 
  <wsdl:output message="intf:makePlotResponse2" name="makePlotResponse2" /> 
  </wsdl:operation>
- <wsdl:operation name="makePlot" parameterOrder="xi opt">
  <wsdl:input message="intf:makePlotRequest3" name="makePlotRequest3" /> 
  <wsdl:output message="intf:makePlotResponse3" name="makePlotResponse3" /> 
  </wsdl:operation>
- <wsdl:operation name="makePlotxy" parameterOrder="xi yi opt">
  <wsdl:input message="intf:makePlotxyRequest" name="makePlotxyRequest" /> 
  <wsdl:output message="intf:makePlotxyResponse" name="makePlotxyResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="GraphSoapBinding" type="intf:Graph">
  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />

- <wsdl:operation name="makePlot">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="makePlotRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="makePlotResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="makePlot">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="makePlotRequest1">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="makePlotResponse1">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="makePlot">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="makePlotRequest2">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="makePlotResponse2">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="makePlot">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="makePlotRequest3">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="makePlotResponse3">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="makePlotxy">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="makePlotxyRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="makePlotxyResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://plotting.hydroflex.escience.soton.ac.uk" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="GraphService">
- <wsdl:port binding="intf:GraphSoapBinding" name="Graph">
  <wsdlsoap:address location="http://localhost:9080/PlotWS/services/Graph" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>


Here's the error I get trying to view the WSDL of my service:
---------------------- stack trace ----------------------------
                               org.apache.axis.InternalException:
java.lang.Exception: The OperationDesc for makePlot was not synchronized to a
method of uk.ac.soton.escience.hydroflex.plotting.GraphSoapBindingImpl.
	at
org.apache.axis.description.ServiceDesc.syncOperationToClass(ServiceDesc.java:724)
	at
org.apache.axis.description.ServiceDesc.getSyncedOperationsForName(ServiceDesc.java:1013)
	at
org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospectionRecursive(ServiceDesc.java:887)
	at
org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(ServiceDesc.java:821)
	at
org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:631)
	at
org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:342)
	at
org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:507)
	at
org.apache.axis.deployment.wsdd.WSDDDeployment.getDeployedServices(WSDDDeployment.java:559)
	at
org.apache.axis.configuration.FileProvider.getDeployedServices(FileProvider.java:321)
	at
org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServlet.java:681)
	at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:262)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
	at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
	at
com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
	at
com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
	at
com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258)
	at
com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
	at
com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
	at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:872)
	at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:491)
	at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:173)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
	at
com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:199)
	at
com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
	at
com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
	at
com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:331)
	at
com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
	at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:432)
	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:343)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)

Mime
View raw message