antelder 2003/03/25 00:01:24
Modified: java/src/org/apache/wsif/providers/java
WSIFOperation_Java.java
Log:
Fix Java operation to work when the WSDL operation name starts with a capital letter
but the SEI method uses Java naming conventions and starts with a lower case.
Revision Changes Path
1.37 +16 -5
xml-axis-wsif/java/src/org/apache/wsif/providers/java/WSIFOperation_Java.java
Index: WSIFOperation_Java.java
===================================================================
RCS file:
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/java/WSIFOperation_Java.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- WSIFOperation_Java.java 19 Mar 2003 17:11:36 -0000 1.36
+++ WSIFOperation_Java.java 25 Mar 2003 08:01:23 -0000 1.37
@@ -438,15 +438,26 @@
Method[] candidates;
try {
if (!fieldIsConstructor) {
- // Get the possible methods with the argument classes we've found.
+
+ // Java methods start with a lower case but WSDL uses either case
+ String bindingMethodName = fieldJavaOperationModel.getMethodName();
+ String bindingMethodName2 = null;
+ if (Character.isUpperCase(bindingMethodName.charAt(0))) {
+ StringBuffer sb = new StringBuffer(bindingMethodName);
+ sb.setCharAt(0, Character.toLowerCase(sb.charAt(0)));
+ bindingMethodName2 = sb.toString();
+ }
+
Object[] args = getMethodArgumentClasses();
Object retClass = getMethodReturnClass();
+
Vector possibles = new Vector();
for (int i = 0; i < allMethods.length; i++) {
- if (!allMethods[i]
- .getName()
- .equals(fieldJavaOperationModel.getMethodName()))
- continue;
+ String methodName = allMethods[i].getName();
+ if (!(methodName.equals(bindingMethodName)
+ || methodName.equals(bindingMethodName2))) {
+ continue;
+ }
Class[] params = allMethods[i].getParameterTypes();
if (params.length != args.length)
continue;