Bugzilla – Bug 6150
Duplicate Methods in WSDL
Last modified: 2008-08-08 12:06:00
You need to log in before you can comment on or make changes to this bug.
" Most likely this is an issue with the "method" matching algorithm that I'm using with gRAVI. The algorithm in introduce matches the first 3 tokens, so typically "public void methodName". Obviously this breaks down if one tries to match a "static" method or use method overloading. Using method overloading for remote operations will produce illegal WSDL, so this method: gov.nih.nci.cagrid.introduce.codegen.services.methods.SyncHelper.startOfSignature Has this logic built into it. -josh On Jun 6, 2008, at 9:47 AM, Ravi Madduri wrote: > Josh > Let me introduce you to Cem who is working on wrapping blast using gRAVI. He found a issue with adding new args to methods. He is using introduce 1.2 and latest gravi distribution. > > 1. He tried to add arguments to one of the methods that gravi generated and hit the Save button. This ended up creating duplicate methods in WSDL and compile failed. I think WSDL generation is sensitive to adding new arguments to the generated methods."
The problem was occurring because gravi's "CodegenExtensionPreProcessor" was adding remote methods and resource properties to the service definition each time it was called. I added a little test that glances at the service's RP's, if it finds the "State" RP it bails, definitely not the ideal solution. The reported problem is fixed, however, now the client code editor(s) need to be able to react to this information... preCompile: [javac] Compiling 25 source files to /Users/boverhof/HelloWorld/build/classes [javac] /Users/boverhof/HelloWorld/src/org/cagrid/helloworld/client/HelloWorldClient.java:360: ls(org.cagrid.helloworld.context.stubs.types.HelloWorldResultResourceReference,java.lang.String[],java.lang.String[],byte[][],boolean) in org.cagrid.helloworld.client.HelloWorldClient canno t be applied to (org.cagrid.helloworld.context.stubs.types.HelloWorldResultResourceReference,java.lang.String[],java.lang.String[],byte[][]) [javac] resource = client.ls(resReference, arguments, names, data); [javac] ^ [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 1 error ----------------------------------------------------------------------
*** Bug 6292 has been marked as a duplicate of this bug. ***