[ 
https://issues.apache.org/jira/browse/AXIS2-3492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269169#comment-13269169
 ] 

Kishanthan Thangarajah commented on AXIS2-3492:
-----------------------------------------------

This issue can be reproduced in trunk as mentioned. But as suggested in the 
description, we don't need to go for new parameter to handle this. We can use 
the same parameter, "WSDLSupplier", for this. And this needs some modification 
in the kernel (AxisService class), where the check for WSDL supplier is made. 
We can do the same as what is done with, for example, "ServiceObjectSupplier" 
parameter to get the service object supplier class from services.xml. I'm 
adding a fix for this.

Thanks,
Kishanthan.
                
> WSDLSupplier configuration and/or check is not proper/obvious
> -------------------------------------------------------------
>
>                 Key: AXIS2-3492
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3492
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>            Reporter: Dobri Kitipov
>            Assignee: Amila Chinthaka Suriarachchi
>
> Hi everybody,
> There is one mail thread http://marc.info/?l=axis-dev&m=118399944531093&w=2 
> that talks about using WSDLSupplier that gives you the possibility to hook 
> your own WSDL on the fly. This is done implementing an interface 
> org.apache.axis2.dataretrieval.WSDLSupplier.
> What I am currently trying to do is to test this feature. I implemented my 
> own WSDLSupplier, but not sure how to specify it. Looking into the above 
> mentioned thread we can read:
> "I added a check in printWSDL() to see if there was a WSDLSupplier sitting in 
> the "WSDLSupplier" parameter of the AxisService.  If so, it attempts to call 
> the WSDLSupplier to obtain the Definition object from there dynamically.  It 
> then runs that WSDL through the usual printDefinitionObject() API.  This 
> allows my custom service to plug in and generate its own WSDL."
> IMHO I should add a parameter into the services.xml file like:
> <serviceGroup>
>   <service name="Test1">
>     <description>Web Service Test1</description>
>     <parameter 
> name="WSDLSupplier">com.test.wsdlsupplier.MyWSDLSupplier</parameter>
>     <messageReceivers>
>       <messageReceiver class="xxxxx" 
> mep="http://www.w3.org/2004/08/wsdl/in-out"/>
>     </messageReceivers>
>     <operation name="echo"/>
>   </service>
> </serviceGroup>
> The problem is that into org.apache.axis2.description.AxisService method 
> public void printWSDL(OutputStream out, String requestIP) the check is:
> WSDLSupplier supplier = (WSDLSupplier)getParameterValue("WSDLSupplier");
> So I receive:
> java.lang.ClassCastException: java.lang.String
>     org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1167)
> ...
> which is something expected because  getParameterValue("WSDLSupplier"); 
> returns a String object, but not WSDLSupplier. So it is not possible to cast 
> String to WSDLSupplier.
> AFAIK when you add a parameter to services/axis2.xml it is supposed to be 
> retrieved as String. May be there is a need of an additional new attribute 
> like "type". E.g.:
> <parameter name="WSDLSupplier " 
> type="class">com.test.wsdlsupplier.MyWSDLSupplier</parameter>
> or for example something like specifing the deployer into axis2.xml:
> <deployer extension=".class" directory="pojo" 
> class="org.apache.axis2.deployment.POJODeployer"/>
> or in our case
> <WSDLSupplier class="com.test.wsdlsupplier.MyWSDLSupplier"/> ?
> May be more close to this is the way "ServiceClass" parameter is treated by 
> Axis. It finally loads it using a ClassLoader.
> We need to think more deeply which one is preferable. 
> I was advised to open the JIRA 
> (http://www.mail-archive.com/[email protected]/msg39772.html).
> Best regards, Dobri

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to