|
|
|
|
|
Fast Infoset is a standards-based binary encoding of XML that improves performance while decreasing payload size. The initial implementation in GlassFish was for JAX-RPC but later versions use the JAX-WS API and Oleksiys has recently published an entry describing how FI users can Migrate from JAX-RPC to JAX-WS. The latest implementation of FI is FI 1.2.2, available in Metro 1.1, which runs on the current (v2) version of GlassFish but will be bundled in GlassFish v2.1. |
|
We recently realized that our "Web Services" page was pretty out of date. If you're new to Web Services in either Java EE 5 or in GlassFish and you are trying to make sense of Metro, JAX-WS, JAXB, WSIT, or Tango, the new version of that page is now available for you to find all about them. |
You may also be interested in the list of Web Services Technical Articles and Tips. I find the Enterprise Tech Tips to be often very well written and straight to the point. Check them out and tell us what other topics you'd like to be covered.
|
As a follow-up to a previous nice JAX-WS presentation, Stijn Van den Enden's "JAX-WS, beyond the basics" presentation is now available from parleys.com. Stijn does a good job at explaining JAX-WS handlers, JAXB customization, Dispatch/Provider API (although his example may not feel RESTful to the JAX-RS crowd), some best practices and more in a very didactic and easy to follow presentation. Everything said and presented there applies to the Metro Web Services stack that is part of GlassFish v2 (btw, Stijn is reported to be a happy GlassFish user). |
No wonder this is the best-rated program on Parleys.com. The only down side is that I don't see the PDF available on the web site anywhere...
|
In an Enterprise
Tech Tip, Rama describes how to use the JAX-WS Maven
plugin to develop Web services. The article describes why you may be
interested in the plugin: |
In his latest entry, Rama explains how Metro takes advantage of the extensible Handler framework provided by the JAX-WS specification to provide Message-based handlers using a lightweight Tube.
This is all part of the upcoming Metro 1.1 release recently mentioned.
|
Rama reports that Java SE 6 Update N will not only please people waiting for the "Consumer JRE" but also Web Services developers. The much improved JAX-WS 2.1.1 implementation will also be part of the core JRE set of APIs. This will remove the need for the endorsed mechanism required today in order to use both JAX-WS 2.1 and Java 6. |
|
JAX-WS RI no longer depends on the SAAJ RI.
• Check Jitu's
Announcement |
|
JAX-WS replaces JAX-RPC as an easy-to-use and feature-rich Web services specification. A high-performant and production-quality implementation of JAX-WS is already available in Metro. OpenPortal WSRP Project uses JAX-RPC for the Web services stack and started work in parallel to migrate to JAX-WS. The instructions to run the JAX-WS version are now available and cleanly classified in data binding, security, tools and deployment descriptors. |
If you are also using JAX-RPC then you can learn from their JAX-RPC -> JAX-WS migration experience and use the great set of features in Metro.
|
Metro, the Web services stack in GlassFish, allows you to build secure, reliable, transactional, and interoperable Web services. NetBeans IDE provides an easy way to generate Web service client artifacts and invoke the endpoint from Java classes or pages. The beauty of Web services is that the client and server may be completely disconnected, for example, even using different language. James Ward showed how to use Flex to create a front end to JAX-WS, a core component of Metro. |
Let us know if you have used JavaFX or any other similar technology to create a front end for Metro.
|
Jitu shows how to configure the JAX-WS RI (part of Metro) for compression. The server (running on a container) can do compression and decompression - Jitu shows how to configure Apache Tomcat and GlassFish. The client side (the JAX-WS implementation) will decode; all that is necessary is to add an appropriate Accept-Encoding header. Currently there is no encoding built into the client code, if you have a use case, please let Jitu know. |
Check out Jitu's writeup for details. The functionality is also described in the JAX-WS Users Guide which is modeled after the JAXB Users Guide.
|
Thomas announced that JBossWS 2.1.0 will support Metro, the GlassFish WS Stack (Thomas' blog, Vivek's). Other uses include GF v2 (and SJS AS 9.1), TmaxSoft JEUS 6 and WebLogic Server 10. Metro is designed to be extensible and integrateable and also works on Jetty and Tomcat - I'd venture it should not be hard to use inside Geronimo, so let us know if you attempt that effort. |
PS - The map shown is that of Barcelona's Metro. It does not include the future Linea 9.
|
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
|
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.
|
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. |
|
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.