I've just been reading the E-Mail below, from Etiene Giraudy, and I've encountered a similar problem.
My problem seems to be in the 'register' method of the WSRPRegistration' service. The workaround for this is to set dummy values on the Consumer side when initialising your parameters.
e.g.
instead of: StringHolder[] param1 = new StringHolder[0];
use: StringHolder[] param1 = {"dummy"};


As I say this is merely a workaround and there is a definite bug in there somewhere. Whether it's in the WSRP classes being auto generated or in the axis classes I don't know. The actual ordering of the parameters on the server (Producer) side is done in 'RPCProvider.processMessage' (somewhere around line 220). It would be possible to alter this code to handle the WSRP method parameter ordering. Does anyone know of licensing issues with this?
The root of the problem is in the WSDL file that describes the WSRP services. The parameters used in, e.g. the register method, are enclosed in 'sequence' tags that enclose nine parameters in one sequence and two in the next. These eleven parameters are then passed in to the register method by their sequence order. The problem is that when any of the values are null, which is perfectly legitimate, the sequence ordering goes to pot (a technical term ;-) ).
Sorry I don't have an answer to where the root bug/problem lies but if anybody else knows please tell me.


Keith.





========================

Hi, I'm in the process of trying to implement a native WSRP web service. Here is what i've done so far:
- get wsrp WSDL and XSD files -
get sample service WSDL file -
generate java code with WSDL2Java: java -cp "%AXISCLASSPATH%" org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true sample_wsrp_service.wsdl - compile -
deploy the fake portlet to axis webapp (see attached server-config.wsdd) -
reference the portlet from uPortal (also tried with liferay)
When the portal tries to get the portlet description i'm getting the following error on the axis server (reformatted for easy reading): -


Tried to invoke method public void bind.v1.wsrp.tc.names.oasis.WSRP_v1_ServiceDescription_Binding_SOAPSkeleto \ n.getServiceDescription( types.v1.wsrp.tc.names.oasis.RegistrationContext, java.lang.String[], javax.xml.rpc.holders.BooleanHolder, types.v1.wsrp.tc.names.oasis.holders.PortletDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.CookieProtocolHolder, types.v1.wsrp.tc.names.oasis.holders.ModelDescriptionHolder, org.w3.www._2001.XMLSchema.holders.StringArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ResourceListHolder, types.v1.wsrp.tc.names.oasis.holders.ExtensionArrayHolder) throws java.rmi.RemoteException, types.v1.wsrp.tc.names.oasis.InvalidRegistrationFault, types.v1.wsrp.tc.names.oasis.OperationFailedFault with arguments null, javax.xml.rpc.holders.BooleanHolder, types.v1.wsrp.tc.names.oasis.holders.PortletDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ItemDescriptionArrayHolder, types.v1.wsrp.tc.names.oasis.holders.CookieProtocolHolder, types.v1.wsrp.tc.names.oasis.holders.ModelDescriptionHolder, org.w3.www._2001.XMLSchema.holders.StringArrayHolder, types.v1.wsrp.tc.names.oasis.holders.ResourceListHolder, types.v1.wsrp.tc.names.oasis.holders.ExtensionArrayHolder, null. The arguments do not match the signature. java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3 \ 9) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp \ l.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:38 \ 4) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java: \ 281) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java \ :32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

... It seems to me that AXIS mismatch arguments order (the last one, 'null', should have been the second argument). Any idea on what i may i've done wrong? Is there a known bug here (i did search in JIRA, but did not found anything). Note: I've tested with AXIS 1.1 (had to modify generated code for the java.lang.holders.StringArrayHolder issue) and AXIS 1.2RC3. Subsidiary question: i've not been able to find a packaged sample of native WSRP portlet, does anyone knows about good resources for being kick-started on the subject? Thanks in advance, Etienne

________________________________________________________________________________
This email (and any attachments) is private and confidential, and is intended
solely for the addressee. If you have received this communication in error
please remove it and inform us via telephone or email.

Although we take all possible steps to ensure mail and attachments are free
from malicious content, malware and viruses, we cannot accept any responsibility
whatsoever for any changes to content outwith our administrative bounds.

The views represented within this mail are solely the view of the
author and do not reflect the views of Graham Technology as a whole.
________________________________________________________________________________

Graham Technology plc                               http://www.gtnet.com
________________________________________________________________________________

Reply via email to