type=page
status=published
title=Setting Up a Development Environment
next=class-loaders.html
prev=part-tasks-and-tools.html
~~~~~~
Setting Up a Development Environment
====================================

[[GSDVG00002]][[beaaq]]


[[setting-up-a-development-environment]]
1 Setting Up a Development Environment
--------------------------------------

This chapter gives guidelines for setting up an application development
environment in the Oracle GlassFish Server. Setting up an environment
for creating, assembling, deploying, and debugging your code involves
installing the mainstream version of the GlassFish Server and making use
of development tools. In addition, sample applications are available.

The following topics are addressed here:

* link:#beaar[Installing and Preparing the Server for Development]
* link:#beaas[High Availability Features]
* link:#beaat[Development Tools]
* link:#beabf[Sample Applications]

[[beaar]][[GSDVG00090]][[installing-and-preparing-the-server-for-development]]

Installing and Preparing the Server for Development
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For more information about GlassFish Server installation, see the
link:../installation-guide/toc.html#GSING[GlassFish Server Open Source Edition Installation Guide].

The following components are included in the full installation.

* JDK
* GlassFish Server core

** Java Platform, Standard Edition (Java SE) 8

** Java EE 8 compliant application server

** Administration Console

** `asadmin` utility

** Other development and deployment tools

** Open Message Queue software

** Apache http://db.apache.org/derby/manuals[Derby database]

** Load balancer plug-ins for web servers

The NetBeans Integrated Development Environment (IDE) bundles the
GlassFish edition of the GlassFish Server, so information about this IDE
is provided as well.

After you have installed GlassFish Server, you can further optimize the
server for development in these ways:

* Locate utility classes and libraries so they can be accessed by the
proper class loaders. For more information, see
link:class-loaders.html#beadj[Using the Common Class Loader].
* Set up debugging. For more information, see
link:debugging-apps.html#beafc[Debugging Applications].
* Configure the Virtual Machine for the Java platform (JVM software).
For more information, see "link:../administration-guide/jvm.html#GSADG00007[Administering the Virtual
Machine for the Java Platform]" in GlassFish Server Open Source Edition
Administration Guide.

[[beaas]][[GSDVG00091]][[high-availability-features]]

High Availability Features
~~~~~~~~~~~~~~~~~~~~~~~~~~

High availability features such as load balancing and session failover
are discussed in detail in the link:../ha-administration-guide/toc.html#GSHAG[GlassFish Server Open Source
Edition High Availability Administration Guide]. This book describes the
following features in the following sections:

* For information about HTTP session persistence, see
link:webapps.html#beahe[Distributed Sessions and Persistence].
* For information about checkpointing of the stateful session bean
state, see link:ejb.html#beaib[Stateful Session Bean Failover].
* For information about failover and load balancing for Java clients,
see link:java-clients.html#beakt[Developing Java Clients].
* For information about load balancing for message-driven beans, see
link:jms.html#beaop[Load-Balanced Message Inflow].

[[beaat]][[GSDVG00092]][[development-tools]]

Development Tools
~~~~~~~~~~~~~~~~~

The following general tools are provided with the GlassFish Server:

* link:#beaau[The `asadmin` Command]
* link:#beaav[The Administration Console]

The following development tools are provided with the GlassFish Server
or downloadable from Oracle:

* link:#beaba[The Migration Tool]
* link:#beaaw[The NetBeans IDE]

The following third-party tools might also be useful:

* link:#beabb[Debugging Tools]
* link:#beabc[Profiling Tools]

[[beaau]][[GSDVG00333]][[the-asadmin-command]]

The `asadmin` Command
^^^^^^^^^^^^^^^^^^^^^

The `asadmin` command allows you to configure a local or remote server
and perform both administrative and development tasks at the command
line. For general information about `asadmin`, see the
link:../reference-manual/toc.html#GSRFM[GlassFish Server Open Source Edition Reference Manual].

The `asadmin` command is located in the as-install`/bin` directory. Type
`asadmin help` for a list of subcommands.

[[beaav]][[GSDVG00334]][[the-administration-console]]

The Administration Console
^^^^^^^^^^^^^^^^^^^^^^^^^^

The Administration Console lets you configure the server and perform
both administrative and development tasks using a web browser. For
general information about the Administration Console, click the Help
button in the Administration Console. This displays the GlassFish Server
online help.

To access the Administration Console, type `http://`host`:4848` in your
browser. The host is the name of the machine on which the GlassFish
Server is running. By default, the host is `localhost`. For example:

[source,oac_no_warn]
----
http://localhost:4848
----

[[beaba]][[GSDVG00337]][[the-migration-tool]]

The Migration Tool
^^^^^^^^^^^^^^^^^^

The Migration Tool converts and reassembles Java EE applications and
modules developed on other application servers. This tool also generates
a report listing how many files are successfully and unsuccessfully
migrated, with reasons for migration failure. For more information and
to download the Migration Tool, see
`http://java.sun.com/j2ee/tools/migration/index.html`.

[[beaaw]][[GSDVG00338]][[the-netbeans-ide]]

The NetBeans IDE
^^^^^^^^^^^^^^^^

The NetBeans IDE allows you to create, assemble, and debug code from a
single, easy-to-use interface. The GlassFish edition of the GlassFish
Server is bundled with the NetBeans 6.1 IDE. To download the NetBeans
IDE, see `http://www.netbeans.org`. This site also provides
documentation on how to use the NetBeans IDE with the bundled GlassFish
edition of the GlassFish Server.

You can also use the GlassFish Server with the Java Studio Enterprise
software, which is built on the NetBeans IDE. For more information, see
`http://developers.sun.com/jsenterprise/`.

[[beabb]][[GSDVG00340]][[debugging-tools]]

Debugging Tools
^^^^^^^^^^^^^^^

You can use several debugging tools with the GlassFish Server. For more
information, see link:debugging-apps.html#beafc[Debugging Applications].

[[beabc]][[GSDVG00341]][[profiling-tools]]

Profiling Tools
^^^^^^^^^^^^^^^

You can use several profilers with the GlassFish Server. For more
information, see link:debugging-apps.html#beafn[Profiling Tools].

[[beabf]][[GSDVG00093]][[sample-applications]]

Sample Applications
~~~~~~~~~~~~~~~~~~~

Sample applications that you can examine and deploy to the GlassFish
Server are included as part of the Java EE 8 SDK bundle. The samples are
also available from `https://github.com/javaee/glassfish-samples`.

Most GlassFish Server samples have the following directory structure:

* The `docs` directory contains instructions for how to use the sample.
* The `pom.xml` file defines Maven targets for the sample.
* The `src/` directory contains source code for the sample.


