Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

How to use Gson library

Avatar

Level 4

Hi,
I'm trying to import and use Google Gson library in my servlet but when I try to compile the servlet I get these errors

com.google.gson.JsonElement cannot be resolved to a type com.google.gson.JsonParser cannot be resolved to a type com.google.gson.JsonObject cannot be resolved to a type

The Gson library is in OSGi and Active and it exports these packages

com.google.gson,version=2.2.4 com.google.gson.annotations,version=2.2.4 com.google.gson.internal,version=2.2.4 com.google.gson.internal.bind,version=2.2.4 com.google.gson.reflect,version=2.2.4 com.google.gson.stream,version=2.2.4

How can I use the library in my servlets? I need it to parse JSON strings.

Thanks for any help

1 Accepted Solution

Avatar

Correct answer by
Level 10

For this use case -- you have to place the JSON JAR into an OSGi bundle and deploy to CQ.

We have a community article that walks you through this process. See

"Add the org.json.simple.JSONObject data type to Adobe CQ "

in this AEM community article:

http://scottsdigitalcommunity.blogspot.ca/2013/06/posting-form-data-to-adobe-cq-using.html

In this article -- notice that a sling servlet encodes data as JSON using this lib.

Build your Bundle as well  using Maven as specified in this article. Once you do that -- CQ will have no issues finding the libs.

One issue you may have encountered is the versions.  Make sure that the versions of the JSON packages exported in the bundle are the same versions you use. 

View solution in original post

1 Reply

Avatar

Correct answer by
Level 10

For this use case -- you have to place the JSON JAR into an OSGi bundle and deploy to CQ.

We have a community article that walks you through this process. See

"Add the org.json.simple.JSONObject data type to Adobe CQ "

in this AEM community article:

http://scottsdigitalcommunity.blogspot.ca/2013/06/posting-form-data-to-adobe-cq-using.html

In this article -- notice that a sling servlet encodes data as JSON using this lib.

Build your Bundle as well  using Maven as specified in this article. Once you do that -- CQ will have no issues finding the libs.

One issue you may have encountered is the versions.  Make sure that the versions of the JSON packages exported in the bundle are the same versions you use.