include::../shared-doc/attributes.adoc[]

= kitchensink-ear: Using Multiple {javaVersion} Technologies Deployed as an EAR
:author: Pete Muir
:level: Intermediate
:technologies: CDI, JSF, JPA, EJB, JAX-RS, BV, EAR

[abstract]
The `kitchensink-ear` quickstart demonstrates web-enabled database application, using JSF, CDI, EJB, JPA, and Bean Validation, packaged as an EAR.

:standalone-server-type: default
:archiveType: ear
:uses-h2:
:uses-ds-xml:

== What is it?

The `kitchensink-ear` quickstart is a deployable Maven 3 project to help you get your foot in the door developing with {javaVersion} on {productNameFull}.

It demonstrates how to create a compliant {javaVersion} application using JSF, CDI, JAX-RS, EJB, JPA, and Bean Validation. It includes a persistence unit and some sample persistence and transaction code to introduce you to database access in enterprise Java. It is based on the link:../kitchensink/README.adoc[kitchensink] quickstart but is packaged as an EAR archive.

// Considerations for Use in a Production Environment
include::../shared-doc/development-shortcuts.adoc[leveloffset=+1]
// System Requirements
include::../shared-doc/system-requirements.adoc[leveloffset=+1]
// Use of {jbossHomeName}
include::../shared-doc/use-of-jboss-home-name.adoc[leveloffset=+1]
// Start the {productName} Standalone Server
include::../shared-doc/start-the-standalone-server.adoc[leveloffset=+1]
// Build and Deploy the Quickstart
include::../shared-doc/build-and-deploy-the-quickstart.adoc[leveloffset=+1]

== Access the Application

The application will be running at the following URL: http://localhost:8080/kitchensink-ear/.

. Enter a name, email address, and Phone nubmer in the input field and click the *Register* button.
. If the data entered is valid, the new member will be registered and added to the *Members* display list.
. If the data is not valid, you must fix the validation errors and try again.
. When the registration is successful, you will see a log message in the server console:
+
[source,subs="+quotes,attributes+",options="nowrap"]
----
Registering __YOUR_NAME__
----

// Undeploy the Quickstart
include::../shared-doc/undeploy-the-quickstart.adoc[leveloffset=+1]
// Run the Arquillian Tests
include::../shared-doc/run-arquillian-tests.adoc[leveloffset=+1]


== Investigate the Console Output

When you run the Arquillian tests, Maven prints summary of the performed tests to the console. You should see the following results.

[source,options="nowrap"]
----
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
----

== Investigate the Server Console Output

You should see messages similar to the following:

[source,options="nowrap"]
----
INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0027: Starting deployment of "test.war" (runtime-name: "test.war")
...
INFO  [org.jboss.as.quickstarts.kitchensink_ear.service.MemberRegistration] (default task-102) Registering Jane Doe
INFO  [org.jboss.as.quickstarts.kitchensink_ear.test.MemberRegistrationTest] (default task-102) Jane Doe was persisted with id 1
...
INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028: Stopped deployment test.war (runtime-name: test.war) in 38ms
....
INFO  [org.jboss.as.server] (management-handler-thread - 22) WFLYSRV0009: Undeployed "test.war" (runtime-name: "test.war")
----

== Server Log: Expected Warnings and Errors

You will see the following warnings in the server log. You can ignore these warnings.

[source,options="nowrap"]
----
WFLYJCA0091: -ds.xml file deployments are deprecated. Support may be removed in a future version.

HHH000431: Unable to determine H2 database version, certain features may not work
----

// Run the Quickstart in Red Hat JBoss Developer Studio or Eclipse
include::../shared-doc/run-the-quickstart-in-jboss-developer-studio.adoc[leveloffset=+1]

// Additional JBoss Developer Studio instructions
For this quickstart, follow the special instructions to build link:link:{useEclipseDeployEARDocUrl}[Quickstarts Containing an EAR].

. Right-click on the *{artifactId}-ear* subproject, and choose *Run As* –> *Run on Server*.
. Choose the server and click *Finish*.
. This starts the server, deploys the application, and opens a browser window that accesses the running application at http://localhost:8080/kitchensink-ear-web.
. To undeploy the project, right-click on the *{artifactId}-ear* project and choose *Run As* –> *Maven build*. Enter `wildfly:undeploy` for the *Goals* and click *Run*.

// Debug the Application
include::../shared-doc/debug-the-application.adoc[leveloffset=+1]
