Jsonp

Run
How to run the sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing we need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/jaxrs/jsonp/
Now we are ready to start testing. You can run all the tests in this sample by executing:
mvn test
Or you can run individual tests by executing one of the following:
mvn test -Dtest=MyResourceTest

MyResourceTest

Missing a description for the story. Add some javadoc to the TestClass. Show me how!
Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
@Deployment(testable = false)
public static WebArchive createDeployment() {
    return ShrinkWrap.create(WebArchive.class)
            .addClasses(
                    MyApplication.class,
                    MyObjectResource.class,
                    MyArrayResource.class);
}

Test of echoObject method, of class MyObjectResource.

@Test
public void testEchoObject() {
    JsonObject jsonObject = Json.createObjectBuilder()
            .add("apple", "red")
            .add("banana", "yellow")
            .build();

    JsonObject json = targetObject
            .request()
            .post(Entity.entity(jsonObject, MediaType.APPLICATION_JSON), JsonObject.class);
    assertNotNull(json);
    assertFalse(json.isEmpty());
    assertTrue(json.containsKey("apple"));
    assertEquals("red", json.getString("apple"));
    assertTrue(json.containsKey("banana"));
    assertEquals("yellow", json.getString("banana"));
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void testEchoArray() {
    JsonArray jsonArray = Json.createArrayBuilder()
            .add(Json.createObjectBuilder()
                    .add("apple", "red"))
            .add(Json.createObjectBuilder()
                    .add("banana", "yellow"))
            .build();

    JsonArray json = targetArray
            .request()
            .post(Entity.entity(jsonArray, MediaType.APPLICATION_JSON), JsonArray.class);
    assertNotNull(json);
    assertEquals(2, json.size());
    assertTrue(json.getJsonObject(0).containsKey("apple"));
    assertEquals("red", json.getJsonObject(0).getString("apple"));
    assertTrue(json.getJsonObject(1).containsKey("banana"));
    assertEquals("yellow", json.getJsonObject(1).getString("banana"));
}

Share the Knowledge

Find this sample useful? Share on

There's a lot more about JavaEE to cover. If you're ready to learn more, check out the other available samples.

Help Improve

Find a bug in the sample? Something missing? You can fix it by editing the source, making the correction and sending a pull request. Or report the problem to the issue tracker

Recent Changelog

  • Jul 15, 2014: Removed header license. the licensing is now referenced in the license file in the root of the project by Roberto Cortez
  • Jul 11, 2014: Convert to tests for json-p usage with jax-rs by arun-gupta
  • Dec 03, 2013: Change to use client.target(uri) to be compatible with jax-rs 1.0 by Aslak Knutsen
  • Nov 22, 2013: Adding a new arquillian-ready test, still failing with org.glassfish.json.jsonproviderimpl not found by Arun Gupta
  • Sep 17, 2013: Removing netbeans configuration file by Arun Gupta
  • Aug 27, 2013: Moving the source code from http://svn.java.net/svn/glassfish~svn/branches/arun/javaee7-samples/samples/ by Arun Gupta
How to help improve this sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing you need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/jaxrs/jsonp/

Do the changes as you see fit and send a pull request!

Good Luck!