Tuesday Jun 19, 2007

What's in a Name -- Introducing Metro, the GlassFish WebServices Stack

Overview Picture of Metro

The GlassFish Web Services stack (JAX-WS RI plus Project Tango and more) has seen very nice adoption through the GlassFish AppServer and via Tomcat, Jetty, and commercial products like WLS 10, Tmaxsoft's JEUS 6 and elsewhere.

We think that a concise name and a consolidated download for the stack will enable even faster adoption so... we now have Project Metro. Check out the announcements from Arun, Harold and Kohsuke.

The old names (JAX-WS RI, Tango) do not go away, but we will start emphasizing the new name in future posts. And, before you ask, yes, Metro is a relatively common name in the web but the top hits do not have high page rank indices, so we hope that soon we will show close to the top in search results

GlassFish Web Services Stack Tango with JavaSE6

Duke Tango

The Web services stack in GlassFish V2 uses JAX-WS 2.1 and JAXB 2.1 as the core Web services platform. WSIT extends this core by providing an implementation of key WS-\* specifications. Since JavaSE 6 has Web services support through the JAX-WS 2.0 and JAXB 2.0 specifications, it allows to build basic Web services using only JavaSE 6 but does not have any of the WSIT capabilities. But now that's possible!

Fabian explained how a WSIT endpoint be easily deployed using the JAX-WS Endpoint API. In a follow up post, I provide a detailed writeup with complete working code.

GlassFish Web services stack "tango" nicely on Tomcat, Jetty and JavaSE 6.

Monday Jun 11, 2007

SSL and HTTP Basic Authentication with Glassfish and JAX-WS

Ryan de Laplante

When you're securing Web services, sometimes you need all the flexibility and features that Sun Java System Access Manager 7.1 gives you - centralized policy management, end-to-end identity via WS-I BSP/Liberty ID-WSF and all. Other times, well, you don't. For the latter case, Ryan de Laplante has done a great job documenting the steps required to secure Web services traffic with SSL and HTTP basic authentication.

Stateful Web services Magic in GlassFish


TheServerSide is excited about the Stateful Web services support in GlassFish. Here is a quote from a recent article

It's almost magical how easy the code is, to use a stateful SOAP service in this manner.

Another user commented:

Looks as great as Microsoft breaking 8+3 limit in filenames.

Stateful Web services support in JAX-WS 2.1 were announced last year and customers have found the programming model dead simple. This extension to JAX-WS RI uses WS-Addressing behind the scene to maintain multiple instances of a service. And because a key goal of Project Tango's is to be interoperable with Microsoft .NET 3.0 framework, this support is interoperable as well. You can see the complete sever-side code on JAX-WS and client-side code on .NET 3.0 in an entry linked from Kohsuke's detailed entry.

Post a comment/question at JAX-WS forum if you would like to see more improvements in this area.

Wednesday Jun 06, 2007

Appreciating Good Designs -- Lotus 25 and JAX-WS RI

Diagram of Lotus 25

Beauty for an engineer is a nice design... be it a Lotus 25, one of Andy's designs (like thumper or Sun Blade 6000) or JAX-WS RI. Check this happy customer: JAX-WS RI is Good, Good, Good.

One challenge with the JAX-WS RI has been that some people still associate Reference Implementation with Proof of Concept. Another has been conveying that the GlassFish WS Stack also includes WSIT/Tango, JAX-WS Commons and XWSS. We are considering a new umbrella name for the stack to address both issues.

Friday May 25, 2007

Now also on Jetty... the GlassFish Web Services stack

XML Duke

One of the principles of GlassFish is to encourage the adoption of its components, and, as part of that, we attempt to make those components portable. Vivek had already reported that JAX-WS 2.1 only depended on Servlet 2.4 and would run on Jetty (and others), and now Arun provides the specific instructions to achieve this, including the WSIT/Tango features.

Check the installation details at Arun's writeup.

Monday May 14, 2007

Invoking AdSense via JAX-WS

Logo for Google's AdSense

Following on Using SalesForce with JAX-WS's RI, here is a pointer to Jitu's pre-J1 post on Invoking Google's AdSense. The JAX-WS RI code is very similar to the Axis code; the main difference is the ability to use JAXB and some additional types.

Check it out at Jitu's blog.

Friday May 11, 2007

JAX-WS 2.1 final... finally!


Finally! We now have an official final release of JAX-WS 2.1. It has taken a bit longer than planned; we thought we were done, then we discovered we had dropped the batton and gave you a status update... And now there are here.

Check Doug's blog and Vivek's. Enjoy!

Saturday Apr 28, 2007

Improved JSON Support

More improvements to the JSON support in GlassFish. Kohsuke reports on progress in the client-side programming model, including a new, JavaScript-centric tool in the spirit of wsimport).

The JavaScript client can then just include the proxy script and then asynchronously invoke the WS service as follows:

<script src="path/to/endpoint?js"></script> myService.get( {id:5}, function(r) { alert("ID="+r.id); alert("title="+r.title); } );

Screenshot of generated documentation

The JSON extension exploits the Schema analysis machinery in JAX-WS which means that it can generate nice JavaScript and can also do things like generating very nice looking documentation automatically - as shown (somewhat washed out) at left.

JSON support is in the "and more..." portion of Kohsuke and Jitu's presentation at JavaOne: TS-4948 "Unleashing the Power of JAX-WS RI: Spring, Stateful Web Services, SMTP, and More... :-). At least Kohsuke, and probably also Jitu, will also be present at GlassFish Day - register for free here.

Tuesday Apr 24, 2007

Ask the Experts Session on WSIT and Project Tango

Ask the Experts

Ask the Experts (April 30-May 1): WSIT and Project Tango.
Got a question about Web Services Interoperability Technology (WSIT, aka Project Tango) for Web Services-based interoperability between Java EE and .Net?

Post it during this session from April 30 to May 4 on the Ask the Experts page and get answers from Sun experts Arun Gupta, Harold Carr, and Marek Potociar.

Friday Apr 20, 2007

Lasagna, JAX-WS and Woodstox

Photo of a Lasagne

Woodstox is a popular, high quality, XML parser that implements JSR-173, StAX, the JCP-defined XML pull-parser API. We believe that the latest GlassFish's WS implementation (JAX-WS 2.1.1) is well layered on StAX.

This architectural layering should make our implementation more flexible and reusable; for instance, it should be possible to replace SJSXP with Woodstox and it should just work (tm). We have done some testing and that seems to be the case but we would appreciate independent confirmation.

So, can you help us? Check Jitu's blog for simple steps to do the replacement. Thanks!

Monday Apr 16, 2007

New JAXB and JAX-WS Releases

Ticker Machine

Two new releases from the GlassFish team, both integrated in GlassFish v2 beta2, due early next month, in time for GlassFish Day and JavaOne.

JAX-WS 2.1.1 is a release candidate for JAX-WS 2.1.

JAXB 2.1.3 is mostly a bug-fixing release - check the list of changes here.

The GlassFish Web Services stack is being adopted by many other projects (e.g. WebLogic Server 10); we believe it has the best performance in the market (earlier comparison, but stay tuned for a nice additional improvement) and it is very extensible (e.g. see JSON support).

Friday Apr 13, 2007

Support for JSON in JAX-WS at GlassFish

Jason bringing Pelias the Golden Fleece

The JAX-WS project in GlassFish is taking advantage of the pluggable encoding layer in their implementation to provide a JSON binding.

This Implementation is at an early stage and is part of the JAX-WS-commons extensions which also includes such committed extensions as: Spring Support, HTTP Session Scope Service, Thread Scope Service and the JAX-WS Maven 2 plugin.

The JSON binding enables to write code like the following:

@BindingType(JSONBindingID.JSON_BINDING) public class MyService { public Book get() { return new Book(); } public static final class Book { public int id = 1; public String title = "Java"; } }

Sunday Apr 08, 2007

JAX-WS 2.1 Update - Final release getting closer (again!)

XML Duke

You may remember that we had to pull out the first attempt to finalize JAX-WS 2.1. We think we have fixed these problems and we are, again, in the last straight. Check Doug's and Vivek's blogs and the JAX-WS 2.1 Roadmap Page

If everything goes according to plan, the specification should be finalized in early May, in time for JavaOne, GlassFish v2 beta2 and GlassFish Day.

Thursday Apr 05, 2007

Joe likes King Crimson and JAX-WS

Cover photo from THRAK's album

Joe has kind words for JAX-WS despite Arun interfering his listening to Dinosaur (from THRAK). From his recent blog:

This is excellent and it's exactly what it should be. Way to go, JAX-WS people.

Thanks, Joe, we hope you will like the rest of GFv2 the same... but, if you don't, let us know why!