Hi Ajay
pls see my comments below
Ajay Upadhyaya wrote:
> Hi,
> I'm in process of migrating from axis1.x, I was using Message style
> services in my application
> signatures were like Document method(Document in)
>
> Which I've changed to OMElement method(OMElement in).The code
> migration went okay, app works fine. I found one issue (for which I
> needed workaround in my code). Here is the scenario
>
> class ServiceClass
> {
> //service wrapper
> public OMElement operation1(OMElement in){.... }
> //real implementation of service
> OMElement operation1(){.... }
> }
>
> services.xml
> ---------------------
> <service name="myservice">
> <description>
> my web service
> </description>
> <parameter name="ServiceClass"
> locked="false">ServiceClass</parameter>
> <operation name="operation1">
> <messageReceiver
> class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
> <actionMapping>urn:operation1</actionMapping>
> </operation>
> </service>
>
> During initialization following exception is thrown
> ERROR [org.apache.axis2.deployment.ServiceBuilder] - Error in schema
> generating Sorry we don't support methods overloading !!!!
> java.lang.Exception: Sorry we don't support methods overloading !!!!
> at
> org.apache.ws.java2wsdl.SchemaGenerator.generateSchema(SchemaGenerator.java:143)
> at org.apache.axis2.deployment.util.Utils.fillAxisService
> (Utils.java:213)
> at
> org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:149)
> at
> org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(ServiceGroupBuilder.java:91)
> at
> org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:84)
> at
> org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:118)
> at
> org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:620)
> at
> org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:195)
> at org.apache.axis2.deployment.RepositoryListener.update
> (RepositoryListener.java:207)
> at
> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:155)
> at
> org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:91)
>
> at
> org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:142)
> at
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java
> :42)
> at
> org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:213)
> at
> org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:182)
>
> - To workaround this, I had to create a base class and move the real
> implementation method in base class
>
> class BaseClass
> {
> //real implementation of service
> OMElement operation1(){.... }
> }
>
> class ServiceClass extends BaseClass
> {
> //service wrapper
> public OMElement operation1(OMElement in){.... }
> }
>
> Looking into the axis source, found that
> org.apache.ws.java2wsdl.SchemaGenerator.generateSchema method uses
> getDeclaredMethods() call to find the methods in the service class,
> and as getDeclaredMethods does not returns methods inherited by a
> class, the workaround works.
>
> The irony is that, in my case, since I'm not using RPC message
> receivers, the SchemaGenerator class anyway is not useful, as it does
> not work for non RPC cases
When you are using message receivers other than RPC , it should not try
to generate wsdl for you. So if you getting this error when you use
RawXML Message Receiver its a bug in Axis2.
Why dont you create JIRA ?
>
> I'm wondering if not seeing inherited methods is a bug or a feature...
> but either way, this could be put somewhere in documentation. The
> message Sorry we don't support methods overloading is a bit misleading
> as I'm using overloaded (inherited) methods.
+1
>
> -Ajay Upadhyaya
>
--
Thanks,
Deepal
................................................................
~Future is Open~
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]