Posts

Showing posts from September, 2005

OOW Demo3 - .NET/J2EE interop by examples

Last week, I have been presenting at Oracle Open World on the subject of Web services interoperability between .NET and J2EE, with a focus on Oracle's implementation of JAX-RPC that is available in our latest developer preview.

Today, I have a very simple example of 'tweaking a local copy of the original WSDL'.

Here is the WSDL : http://www.tilisoft.com/ws/LocInfo/ZipCode.asmx?WSDL

C:\ow2005\Demo3>java -jar /oc4j/webservices/lib/wsa.jar genProxy output ./gen_src wsdl http://www.tilisoft.com/ws/LocInfo/ZipCode.asmx?WSDL
SEVERE: WSDL validation failed. The wsdl contains a mixture of styles - "document" and "rpc". Only "rpc" OR "document" is supported in a wsdl, not both.

work around:
- make a local copy
- edit the WSDL, and replace the instances of rpc with document.
- re-run the genProxy command

For some reason, the publisher of this service has been using 'rpc' at the service level, then 'document' at the operation level …

Usefull C# code snippet

If you are trying to look at the payload, when writing C# code, here is the way I ussually send the request from my C# client through an HTTP proxy. Usually, I am using the one that is embedded in JDeveloper.

using System.Net; // for proxy setup
...
  IWebProxy proxyObject = new WebProxy("http://hostname:8099", false);
  service.Proxy = proxyObject;

Note: do not use localhost or 127.0.0.1 if you want to hit the network layer.

When all the stars start to get aligned...

Discovered a cool post on WCF position regarding RPC-literal: "RPC" vs. Messaging in WCF.
It looks like the old position, from the early days of .NET is no longer the norm. The choice is back to the developers. Now, we can rename this post the way it was supposed to be name: 'RPC/Literal and French Choice'.

The way to go forward is still with the Document-Literal-MSS [Microsoft Secret Sauce] format, a.k.a Wrapped style. The legacy is sutch that you will have interoperability problem if you use this message format with a non-indigo based .NET framework.

-ecco

Simon Says - Top 10 tips on interop

If you don't have the time to watch msdntv, here they are:
#10 - no empty array (or arrays with un-initialized elements to be more precise)
Person[] getPeoples() { return new Person[10]; }#9 - package name (don't use equal test when comparing complexType - result in class cast or compiler error)#8 - test for null ; don't use ==. instead use isNull()#7 - no null for Date (System.DateTime does not have a null).
It's supported in indigo but don't use.#6 - date comparaison (use compareTo)#5 - use a trace tool (console, proxy)#4 - code so that you can change port number.#3 - Unit Test (another good practice)#2 - use doc/literal (WS-I recommend doc/literal, WS-I allow rpc/literal, niche market)#1 - use XSD first (but still use your WS platform or toolkit for the WSDL from code).A few comments I have :#5 - I'll even go further on this one - Mindreef's SOAPscope rules !!!#4 - this is just good practice, not an interop tip.#3 - And make sure that you do not rely on def…

404 - Not Found

Bush Error 404 - Bush Not Found In Crawford
If the page does not load for you, hit refresh (or the any key).

found it on Chris's Rants

Back online

Almost a month now that the vacations are over and I have finally been able to recover my account information to resume this endavour.
It's amazing to see how much damage a set of little software glitches can do...

-ecco