{{Short description|Web service stack}} {{more citations needed|date=June 2021}}

{{Infobox software | name = Metro | logo = <!-- File name without 'File:' --> | logo caption = | logo alt = | logo size = | collapsible = <!-- Any text here will collapse the screenshot. --> | screenshot = <!-- File name without 'File:' --> | screenshot size = | screenshot alt = | caption = | other_names = | author = Sun Microsystems | developer = Eclipse Foundation | released = {{Start date and age|2007|09|17}} | ver layout = <!-- simple (default) or stacked --> | discontinued = <!-- Set to yes, if software is discontinued, otherwise omit. --> | latest release version = 3.0.1 | latest release date = {{Start date and age|2021|04|14}} | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD}} --> | repo = <!-- {{URL|example.org}} --> | qid = | programming language = Java | middleware = | engine = <!-- or |engines= --> | operating system = | platform = Jakarta EE | included with = | replaces = | replaced_by = | service_name = | size = | standard = | language = | language count = <!-- Number only --> | language footnote = | genre = web service framework | license = {{ill|Eclipse Distribution License|lt=EDL 1.0|qid=Q26245522}} | website = {{official URL}} | AsOf = }} '''Metro''' is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration.<ref>{{cite web|url=https://metro.dev.java.net/discover/ |title=metro: Discover Metro |url-status=dead |archiveurl=https://web.archive.org/web/20070708134345/https://metro.dev.java.net/discover/ |archivedate=2007-07-08 }}</ref> Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX (SJSXP implementation) and WSIT. Originally available under the CDDL and GPLv2 with classpath exception,<ref>{{cite web|url=http://metro.java.net/discover/faq.html|title=metro: Metro FAQ}}</ref> it is now available under {{ill|Eclipse Distribution License|qid=Q26245522}}

== History == Originally, the Glassfish project developed two semi-independent projects: *JAX-WS RI, the Reference implementation of the JAX-WS specification *WSIT, a Java implementation of some of the WS-* and an enhanced support for interoperability with the .NET Framework. It is based on JAX-WS RI as "Web Service layer".

In June 2007, it was decided to bundle these two components as a single component named '''Metro'''.<ref>{{cite web |last=Gupta |first=Arun |date=2007-06-19 |df=mdy |title=Announcing Metro - Naming the Web Services stack in GlassFish |department=Miles to go… |website=blogs.sun.com |url=http://blogs.sun.com/arungupta/entry/announcing_metro_naming_the_web |archive-url=https://web.archive.org/web/20090926144443/http://blogs.sun.com/arungupta/entry/announcing_metro_naming_the_web |archive-date=2009-09-26}}</ref>

== Features == Metro compares well with other web service frameworks in terms of functionality. Codehaus started a comparison<ref>{{cite web |title=Stack Comparison |department=XFire |website=xfire.codehaus.org |url=http://xfire.codehaus.org/Stack+Comparison |archive-url=https://web.archive.org/web/20061230114334/http://xfire.codehaus.org/Stack+Comparison |archive-date=2006-12-30}}</ref> which compared Apache Axis 1.x, Axis 2.x, Celtix, Glue, JBossWS, Xfire 1.2 and JAX-WS RI + WSIT (the bundle was not yet named Metro at that time). This was later updated by the ASF to replace Celtix with CXF and to include OracleAS 10g.<ref name="asl-comp">{{cite web |title=StackComparison |department=Apache Web Services Wiki |website=Apache Wiki Farm |url=https://wiki.apache.org/ws/StackComparison |archive-url=https://web.archive.org/web/20170904141955/https://wiki.apache.org/ws/StackComparison |archive-date=2017-09-04}}</ref>

Metro includes JAXB RI, JAX-WS RI, SAAJ RI, SJSXP, and WSIT, along with libraries that those components depend on, such as <code>xmlstreambuffer</code>, <code>mimepull</code>, etc.<ref>{{Cite web|url=https://metro.java.net/discover/faq.html|title = Metro}}</ref>

Its features include: * Basic Profile 1.1 Compliant * Easily Create Services from POJOs * RPC-Encoding * Spring Support * REST Support * Soap 1.1/1.2 * Streaming XML (StAX based) * WSDL 1.1 ->Code (Client)/(Server) * Server and Client-side Asynchrony<ref name="asl-comp"/>

Supported WS-* Standards<ref name="asl-comp"/> {| class="wikitable" | WS-Addressing | WS-Atomic Transaction | WS-Coordination |- | WS-Metadata Exchange | WS-ReliableMessaging | WS-Policy |- | WS-Secure Conversation | WS-Security Policy | WS-Security |- | WS-Trust | WSDL 1.1 Support | |- |}

Supported Transport protocols include: * HTTP * JMS * SMTP/POP3 * TCP * In-VM

Metro augments the JAX-WS environment with advanced features such as trusted, end-to-end security; optimized transport (MTOM, Fast Infoset), reliable messaging, and transactional behavior for SOAP web services.

== Market share == Metro is bundled with Java SE 6 in order to allow consumers of Java SE 6 to consume Web Services.<ref>{{cite web |title=JAX-WS FAQ |website=jax-ws |url=https://jax-ws.dev.java.net/faq/index.html#different_versions |archive-url=https://web.archive.org/web/20070807124130/https://jax-ws.dev.java.net/faq/index.html#different_versions |archive-date=2007-08-07}}</ref>

Metro is bundled with numerous application servers such as:<ref>{{cite web |last=Gupta |first=Arun |date=2007-07-22 |df=mdy |title=Metro - Now on Tomcat 6.x also |department=GlassFish |website=blogs.sun.com |url=http://blogs.sun.com/theaquarium/entry/metro_now_on_tomcat_6 |archive-url=https://web.archive.org/web/20090615134727/http://blogs.sun.com/theaquarium/entry/metro_now_on_tomcat_6 |archive-date=2009-06-15}}</ref> * GlassFish * Sun Java System Application Server Platform Edition 9.x * Oracle WebLogic Server * JBoss (version 5.x only) * TmaxSoft JEUS 6.x

The JAXB reference implementation developed for Metro is used in virtually every Java Web Services framework (Apache Axis2, Codehaus XFire, Apache CXF) and Application Servers.

==References== {{Reflist}}

==External links== {{Portal|Free and open-source software}} * {{official website}} * [https://projects.eclipse.org/projects/ee4j.metro Eclipse Metro] project as a part of Eclipse Enterprise for Java (EE4J)

{{GlassFish}}

Category:Web services Category:Java enterprise platform Category:Free software programmed in Java