Forum Discussion
Andy_Herrman_22
Nimbostratus
Aug 03, 2007iControl WSDL versions
Do the WSDL files provided in the SDK download (labeled as version 9.4.0) work with earlier 9.x versions of BIG-IP (we have 9.1.2) or should I use the WSDL files found on the BIG-IP box itself (/usr/local/www/iControl/wsdl)?
For the simple iControl test I'm using right now both seem to work, but diffing the WSDLs show lots of differences (and some files that only exist in one set but not the other).
It seems like using the WSDLs found on the BIG-IP box itself would be better, but two of the WSDL files fail when I try to generate Java classes for them (using apache's AXIS library. Looks like the XML is invalid, containing "<" and ">" characters inside element data). The WSDLs from the SDK don't have any problems, but I worry that they might not match the services provided by our version.
10 Replies
- Don_MacVittie_1Historic F5 AccountHi Andy,
Yes, use the ones on your BIG-IP. Different releases have minor changes and enhancements to the interface. As you observed, most things are the same, but the differences will trip you up if you try to use a routine that has changed.
Which two files are you getting the errors on? Perhaps we can help you get them set straight.
Don. - Andy_Herrman_22
Nimbostratus
It's dying on these files:
LocalLB.ProfileTCP.wsdlSets the states that if true, delay sending data < MSS in size unless all prior data has been ACKed. This leads to less in-flight small-data, and less chance for drops, but can have poor effects for interactive protocols such as telnet over high latency links.
System.ConfigSync.wsdlDeletes the specified file from the device. If the specified file doesn't exist, an exception will be raised. NOTE: File names containing the following characters will be considered invalid: ` ~ \ : ; * ? " < > | &
It looks like special characters aren't being encoded properly in the description fields (specifically, "<" and ">", though I think "&" might be problematic too). Both files have a couple instances of this problem.
EDIT: Cause I'm a moron and used the wrong kind of tags for the code segments... - Don_MacVittie_1Historic F5 AccountLooks like. I'd simply cut those parts out - assuming it's not 20 instances a file anyway. That gives you a quick-fix at least so you can keep working.
Don. - Andy_Herrman_22
Nimbostratus
I just replaced all <, >, and & with the proper XML encoding in those two files. It seems to have fixed it. - Andy, you should be fine using the SDK versions of the WSDL on previous versions of the product. The only issue you will run into is if you try to use a method that was introduced later than your version. This will be easily determined during your testing as the method request would immediately return a SOAP Fault indicating an unfound method.
or better yet, I'd suggest you take a look at the iControl Java assembly located in the iControl Assembly Labs page. This fully encloses the client proxy code in a similar fashion to the .Net assembly. If you go this route, you will not need to worry about compiling up the WSDL and loading up custom SSL security providers. Take a look, I guarantee, you'll find it much easeir to use. This is based on the 9.4 SDK but as I said above, it will be fully backward compatible for the methods that are on your version.
-Joe - Andy_Herrman_22
Nimbostratus
What kind of dependencies are there on the JAR file? It looks like it's output from Apache Axis, so I assume it depends on the Axis libs, but I'm not sure. If so, which version of Axis?
If I've already written a bunch of code against the WSDLs (using Axis's WSDL2Java) how hard will it be to drop in the JAR file? It looks like most of the class names are the same so I'm hoping it will be pretty trivial.
Thanks! - It is based on Apache Axis (v1.3) and all the stubs were created with WSDL2Java.
Using the iControl jar is relatively easy. All the interface and method names will be the same, but for the lib you will need to get to those interfaces from the iControl.Interface class. If you do look into replacing your work with the library, I'd be very interested in your feedback.
-Joe - Andy_Herrman_22
Nimbostratus
It looks like we're moving to use Axis 2 for part of our application, and I'd rather not have to keep multiple versions around. I'm probably just going to stick with using the WSDLs. Oh well, thanks anyway! - Agreed that that would not much fun. I'll rebuild the assembly with Axis 2.0 and test it out. If it works then I'll package both versions up.
It's lame in my book that Axis is not compatible between v 1.3 and v2.0. Have you tested it out and verified this is the case?
-Joe - Andy_Herrman_22
Nimbostratus
I'm actually using Axis 1.4 at the moment. I'm waiting for my coworker to finish adding Axis 2.0 to our main product's build before I migrate over.
From what he's been saying there are very significant differences between the two, so I assume there will be at least some compatibility problems. I don't have Axis 2 set up yet so I can't really verify it though.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
