Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/Examples/JPARS/Simple

Simple Example - student

The "student" example is intended to provide a simple example of using JPA-RS with a single entity persistence unit in a web application.

Environment

The following are the minimal requirements for this example:


Overview

The following steps will be performed in setting up and running this example in your own environment:

  1. Installation & Configuration
    • Install GlassFish 3.1.2.2 
    • Check out student example from GIT
    • Database connectivity
    • GlassFish - Datasource configuration
    • Verify config
    • Deploy web application
  2. Running the Example
    • View metadata
    • Create entity
    • Update entity
    • Query entity
    • Delete entity
    • Switch between XML and JSON
    • Customize XML/JSON representation using MOXy Bindings

Installation and Configuration

1. Download EclipseLink 2.4.2 binaries from 2.4.2 Nightly Builds and replace the following files under $GLASSFISH_HOME/glassfish/modules with the corresponding jars you downloaded:

  • javax.persistence.jar
  • org.eclipse.persistence.antlr.jar
  • org.eclipse.persistence.asm.jar
  • org.eclipse.persistence.core.jar
  • org.eclipse.persistence.dbws.jar
  • org.eclipse.persistence.jpa.jar
  • org.eclipse.persistence.jpa.jpql.jar
  • org.eclipse.persistence.jpa.modelgen.jar
  • org.eclipse.persistence.moxy.jar
  • org.eclipse.persistence.oracle.jar


Make sure you clear the GlassFish osgi cache by removing the $GLASSFISH_HOME\glassfish\domains\<your_domain>\osgi-cache directory after you have replaced the bundles listed above, and before you restart GlassFish.


Note: If you want to see JPA-RS logs, add a logger for org.eclipse.persistence.jpars. Currently exceptions are logged at "FINER" log level, so configure the logger to FINER or FINEST. Use GlassFish Admin Console -> Configurations -> default-config -> Logger Settings -> Log Levels tab -> Add Logger to add a logger for JPA-RS.


2. Clone "examples" from git. The "student" example is stored under student folder.

   git clone git://git.eclipse.org/gitroot/eclipselink/examples.git

3. Configure datasource. Create an XA Datasource connection pool called "JPARSStudentDS" and define a new JDBC Resource using this connection pool. You can use any of the databases supported by EclipseLink. Your database driver should be place under $GLASSFISH_HOME/glassfish/domains/<your_domain_folder>/lib/ext. Use "Additional Properties" (shown below) tab to define database URL, User and Password (and other mandatory properties that the database you use might require).

Configuring JDBC Connection Pool

JDBC Resource


4. Lauch eclipse. Select File->Import->Maven->Existing Maven Projects, hit next and point Root Directory to student folder. Hit finish.


2013-03-07 12 57 52-Java EE - Eclipse Platform.png


5. Build the student project. Right-click on the "student" project and select Maven -> Update Project..., then click OK.

6. Configure a server.


Server.png


7. Select GlassFish 3.1.2. Click "new server wizard" link on the Servers tab. If you don't see GlassFish listed in available server types, click "Download additional server adapters" and select Oracle GlassFish Server Tools to install GlassFish server adapter.


Gf.png


8. Enter domain directory, admin name and password based on your installation and hit Finish.


Example domain.png


9. Deploy student.web. Right click on GlassFish (on the Servers tab), choose "Add and Remove", and select "student.web" in available resources list. Hit Add and Finish.


St deploy.png


Now, you are ready to run the student example. 

Running the Example

  • Launch Chrome and Postman. Please see Creating and sending requests using Postman if you are not familiar with creating and sending REST request using Postman. If you are using another tool to construct REST requests, please make sure you set Accept header correctly. The Accept header is used by HTTP clients to tell the server what content types they'll accept. The server will then send back a response, which will include a Content-Type header telling the client what the content type of the returned content actually is. HTTP requests can also contain Content-Type headers. With POST or PUT requests, the client actually sends a bunch of data to the server as part of the request, and the Content-Type header tells the server what the data actually is (and thus determines how the server will parse it).The JPA-RS accepts "application/json" and "application/xml" and this example focuses on json.

Metadata 2.png


      {
          "id": 65,
          "name": "Jane Smith",
          "courses": [
               {
                   "id":101,
                   "name": "math"
               }
          ]
      }


Post.png


Query.png


Delete.png

Back to the top