<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<!--

    Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<head>
<style type="text/css">
	body{margin-top:0}
	body,td,p,div,span,a,ul,ul li, ol, ol li, ol li b, dl,h1,h2,h3,h4,h5,h6,li {font-family:geneva,helvetica,arial,"lucida sans",sans-serif; font-size:10pt}
	h1 {font-size:18pt}
	h2 {font-size:14pt}
	h3 {font-size:12pt}
	code,kbd,tt,pre {font-family:monaco,courier,"courier new"; font-size:10pt;}
	li {padding-bottom: 8px}
	p.copy, p.copy a {font-family:geneva,helvetica,arial,"lucida sans",sans-serif; font-size:8pt}
	p.copy {text-align: center}
	table.grey1,tr.grey1,td.grey1{background:#f1f1f1}
	th {color:#ffffff; font-family:geneva,helvetica,arial,"lucida sans",sans-serif; font-size:12pt}
	td.insidehead {font-weight:bold; background:white; text-align: left;}
	a {text-decoration:none; color:#3E6B8A}
	a:visited{color:#917E9C}
	a:hover {text-decoration:underline}
</style>
<title>GlassFish Server - Installation Complete</title>
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" link="#594fbf" vlink="#1005fb" alink="#333366"><table width="100%" border="0"
cellspacing="4" cellpadding="2">
<tbody>
<tr>
<td align="right" valign="top"> <a href="http://www.oracle.com">oracle.com</a> </td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#587993"> <font color="#ffffff"><b>GlassFish Server 7</b></font></td>
</tr>
</tbody>
</table> <h1>GlassFish Server - Installation Complete</h1>
<h2>Join the GlassFish community</h2><p>Visit the <a href="https://javaee.github.io/glassfish/">GlassFish Community</a>  page for information
about how to join the GlassFish community. The GlassFish community is developing an open source, production-quality, enterprise-class application  server
that implements the newest features of the Java&trade; Platform, Enterprise Edition (Java EE) platform and related enterprise technologies.</p><h2>Try the
sample applications</h2><p>The sample applications that are included with the Java EE 8 SDK demonstrate how to quickly
compile, assemble, and deploy small, technology-focused applications.</p> <h2>Learn more about GlassFish Server</h2><p>Consult the following resources to
learn more about GlassFish Server:</p><ul>
<li><b><a href="quickstart.html">Quick Start Guide</a>:</b> Start here to learn about the GlassFish Server. The <cite>Quick Start Guide</cite> explains how
to perform basic tasks such as starting the server, accessing the Administration Console, and deploying a sample application. </li>
<li><b><a href="features.html">Features and resources</a>:</b> Learn more about key features of the GlassFish Server, including what's new; plus additional
resources such as forums, mailing lists, support, and how to submit feedback.</li>
<li><b><a href="https://javaee.github.io/glassfish/documentation">Product documentation</a>:</b>  View the online product documentation for complete information about
the GlassFish Server, including up-to-date release notes. </li>
<li><b><a href="https://javaee.github.io/firstcup">Your First Cup: An Introduction to the Java EE Platform</a>:</b> Follow this short tutorial
for beginning Java EE programmers that shows how to develop a simple enterprise application from scratch. The sample application is a web application that
consists of an Enterprise JavaBean&trade;, a JAX-RS web service, and a JavaServer Faces&trade; Facelet web front end.</li>
<li><b><a href="https://javaee.github.io/tutorial">The Java EE Tutorial</a>:</b> Learn more about the Java EE standards by following this
beginner's guide to developing enterprise applications for the GlassFish Server. It includes working examples and step-by-step instructions for creating Java
EE applications with these technologies: Web services, Java Servlets, JavaServer Pages (JSP), JSP Standard Tag Library (JSTL), Enterprise JavaBeans, Java
Message Service, and Java EE Connector Architecture.</li>
<li><b><a href="https://javaee.github.io/javaee-spec/javadocs/">Java&trade; Platform, Enterprise Edition (Java EE) API online documentation</i>:</a></b> View the
API reference documentation for the GlassFish Server packages and related APIs. This documentation is generated from the source code by the Javadoc&trade;
tool.</li>
<hr style="width: 80%; height: 2px;"> <p class="copy"><a href="http://www.oracle.com/corporate/">Company Info</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a
href="http://www.oracle.com/corporate/contact/">Contact</a> &nbsp;&nbsp;|&nbsp;&nbsp; Copyright &copy; 2010, 2019 Oracle Corporation &nbsp;&nbsp;|&nbsp;&nbsp; <a
href="./copyright.html">Legal Notices</a></p></body></html>
