|  | [//]: # " Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved. " | 
|  | [//]: # " " | 
|  | [//]: # " This program and the accompanying materials are made available under the " | 
|  | [//]: # " terms of the Eclipse Distribution License v. 1.0, which is available at " | 
|  | [//]: # " http://www.eclipse.org/org/documents/edl-v10.php. " | 
|  | [//]: # " " | 
|  | [//]: # " SPDX-License-Identifier: BSD-3-Clause " | 
|  |  | 
|  | Jersey CDI Integration CDI Beans WebApp Example | 
|  | =============================================== | 
|  |  | 
|  | This example demonstrates how to develop RESTful web service with CDI | 
|  | managed beans and a Servlet 3.0 Web container. | 
|  |  | 
|  | Contents | 
|  | -------- | 
|  |  | 
|  | The mapping of the URI path space is presented in the following table: | 
|  |  | 
|  | URI path                              | Description                                                                                 | Expected Results | 
|  | ------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | 
|  | **_/cdi-webapp/helloworld_**          | A managed bean with no use of injection whatsoever                                          | Hello World | 
|  | **_/cdi-webapp/singleton_**           | Shows injection of context objects into the fields of a managed bean.                       | OK GET /cdi-webapp/singleton | 
|  | **_/cdi-webapp/singleton/counter_**   | Shows injection of context objects into the fields of a managed bean.                       | standalone Grizzly (no resource injection support) - 0 initial increment value, that gets incremented with each other request | 
|  | |                                                                                             | Java EE compliant AS - 42 initial increment value | 
|  | **_/cdi-webapp/other/C/D_**           | Shows injection of context objects and path parameters into the fields of a managed bean.   | INTERCEPTED: OK GET /cdi-webapp/other, c=C, d=D | 
|  | **_/cdi-webapp/echofield/b?a=a_**     | Shows injection of path and query parameters into the fields of a managed bean.             | ECHO a b | 
|  | **_/cdi-webapp/echo/a_**              | A managed bean that uses (but does not inject) a path parameter.                            | ECHO a | 
|  |  | 
|  | Running the Example | 
|  | ------------------- | 
|  |  | 
|  | This example should work on any Java EE 7 compliant application server. | 
|  | It has been tested on a standalone GlassFish 4 instance. The easiest way | 
|  | to get the application running there is to build it and deploy as | 
|  | follows: | 
|  |  | 
|  | mvn clean package | 
|  | $AS_HOME/asadmin deploy target/cdi-webapp.war | 
|  |  | 
|  | Another option, introduced in Jersey 2.15, is to run this example in | 
|  | Grizzly HTTP server. To get the application running there you just | 
|  | invoke the following command: | 
|  |  | 
|  | mvn clean compile exec:java | 
|  |  | 
|  | Since Weld Servlet support is provided also for Apache Tomcat server, | 
|  | there is yet another way how to deploy the application. Use the | 
|  | `tomcat-packaging` maven profile to get the WAR archive packaged in a | 
|  | way that makes it ready for Tomcat 7+ deployment: | 
|  |  | 
|  | mvn -Ptomcat-packaging clean package | 
|  | cp target/cdi-webapp.war $CATALINA_HOME/webapps | 
|  |  | 
|  | After you successfully deploy the application, visit the following URLs: | 
|  |  | 
|  | -   <http://localhost:8080/cdi-webapp/helloworld> | 
|  | -   <http://localhost:8080/cdi-webapp/singleton> | 
|  | -   <http://localhost:8080/cdi-webapp/singleton/counter> | 
|  | -   <http://localhost:8080/cdi-webapp/other/C/D> | 
|  | -   <http://localhost:8080/cdi-webapp/echofield/b?a=a> | 
|  | -   <http://localhost:8080/cdi-webapp/echo/a> |