You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2005/05/31 23:52:33 UTC
svn commit: r179291 -
/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java
Author: dblevins
Date: Tue May 31 14:52:33 2005
New Revision: 179291
URL: http://svn.apache.org/viewcvs?rev=179291&view=rev
Log:
The pojo class does not need to implement the service endpoint interface.
Modified:
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java
Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java?rev=179291&r1=179290&r2=179291&view=diff
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/server/POJOProvider.java Tue May 31 14:52:33 2005
@@ -16,6 +16,7 @@
*/
package org.apache.geronimo.axis.server;
+import java.lang.reflect.Method;
import javax.xml.rpc.holders.IntHolder;
import org.apache.axis.providers.java.RPCProvider;
@@ -33,5 +34,19 @@
public Object getServiceObject(MessageContext msgContext, Handler service, String clsName, IntHolder scopeHolder) throws Exception {
WebServiceContainer.Request request = (WebServiceContainer.Request) msgContext.getProperty(AxisWebServiceContainer.REQUEST);
return request.getAttribute(WebServiceContainer.POJO_INSTANCE);
+ }
+
+
+ protected Object invokeMethod(MessageContext msgContext, Method interfaceMethod, Object pojo, Object[] arguments) throws Exception {
+ Class pojoClass = pojo.getClass();
+
+ Method pojoMethod = null;
+ try {
+ pojoMethod = pojoClass.getMethod(interfaceMethod.getName(), interfaceMethod.getParameterTypes());
+ } catch (NoSuchMethodException e) {
+ throw new NoSuchMethodException("The pojo class '"+pojoClass.getName()+"' does not have a method matching signature: "+interfaceMethod);
+ }
+
+ return pojoMethod.invoke(pojo, arguments);
}
}