Well, always on the same project, we had a requirement for having Java consumers hookup to a .net WCF web service.
Now in theory, isn’t that suppose to be simple ? After all, everybody knows that ws2007HttpBinding is suppose to have a lot of interoperability with different platforms. DotNet seems to work fine everytime, after all, it is the same technology stack. Java is super duper extra complicated.
First of all, Java by itself doesn’t provide a framework for complicated scenarios. If you want that, you need to integrate with one of the different libraries the implement the different standards. For that there is Apache CXF, Metro, Apache Axis 2 and probably more. These libraries are suppose and say they implement the different standards but can be riddled with bugs or simply : work in progress.
You also have to pay attentions to the little things, for example will localized reasons within faults be available on the Java side ?
One advantage of using Metro is that is was officially tested for interoperability, which seems important. Unfortunatly, Apache CXF is more widely used but has known bugs.
The good thing about all of this though, is that WCF is configuration driven, which means that satisfying a different kind of technology is probably as easy as exposing a second endpoint for the same service what has a different configuration.