package issue | Community
Skip to main content
Level 2
October 16, 2015
Solved

package issue

  • October 16, 2015
  • 3 replies
  • 828 views

hai i created java class for adobe cq , but its showing some jar missing error, i dont know what jar i need to add for that import, i have attached snapshot of page,please refer it and provide your suggestion, thanks in advance[img]Capture.PNG[/img]

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by smacdonald2008

Looks like you are trying to package the CQ app that posts data to a custom Sling Servet as talked about here:

http://helpx.adobe.com/experience-manager/using/custom-sling-servlets.html

@Override
     protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServerException, IOException {
       
      try
      {
         //Get the submitted form data that is sent from the
              //CQ web page  
          String id = UUID.randomUUID().toString();
          String firstName = request.getParameter("firstName");
          String lastName = request.getParameter("lastName");
          String address = request.getParameter("address");
          String cat = request.getParameter("cat");
          String state = request.getParameter("state");
          String details = request.getParameter("details");
          String date = request.getParameter("date"); 
          String city = request.getParameter("city"); 
       
          //Encode the submitted form data to JSON
          JSONObject obj=new JSONObject();
          obj.put("id",id);
          obj.put("firstname",firstName);
          obj.put("lastname",lastName);
          obj.put("address",address);
          obj.put("cat",cat);
          obj.put("state",state);
          obj.put("details",details);
          obj.put("date",date);
          obj.put("city",city);
           
             //Get the JSON formatted data    
          String jsonData = obj.toJSONString();
           
             //Return the JSON formatted data
         response.getWriter().write(jsonData);
      }

When you package an AEM app- you need to know all pieces of it - including the content located under /content, and the backend OSGi bundles. We have a community article that talks about how to place a CQ app that includes an OSGi bundle into a package here:

Packaging Adobe CQ applications that contain an OSGi bundle http://helpx.adobe.com/experience-manager/using/packaging-cq-applications-contain-osgi.html

Make sure that you include the OSGi bundle - and the bundle fragments.

1 - the main OSGi bundle contains the main SLing Servlet

2 - the bundle fragment wraps the simple JSON JAR.

Therefore you need these 2 OSGi bundles in your package. The other import statements shown in your pic are part of the OSGi bundle when you built it. 

3 replies

smacdonald2008
smacdonald2008Accepted solution
Level 10
October 16, 2015

Looks like you are trying to package the CQ app that posts data to a custom Sling Servet as talked about here:

http://helpx.adobe.com/experience-manager/using/custom-sling-servlets.html

@Override
     protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServerException, IOException {
       
      try
      {
         //Get the submitted form data that is sent from the
              //CQ web page  
          String id = UUID.randomUUID().toString();
          String firstName = request.getParameter("firstName");
          String lastName = request.getParameter("lastName");
          String address = request.getParameter("address");
          String cat = request.getParameter("cat");
          String state = request.getParameter("state");
          String details = request.getParameter("details");
          String date = request.getParameter("date"); 
          String city = request.getParameter("city"); 
       
          //Encode the submitted form data to JSON
          JSONObject obj=new JSONObject();
          obj.put("id",id);
          obj.put("firstname",firstName);
          obj.put("lastname",lastName);
          obj.put("address",address);
          obj.put("cat",cat);
          obj.put("state",state);
          obj.put("details",details);
          obj.put("date",date);
          obj.put("city",city);
           
             //Get the JSON formatted data    
          String jsonData = obj.toJSONString();
           
             //Return the JSON formatted data
         response.getWriter().write(jsonData);
      }

When you package an AEM app- you need to know all pieces of it - including the content located under /content, and the backend OSGi bundles. We have a community article that talks about how to place a CQ app that includes an OSGi bundle into a package here:

Packaging Adobe CQ applications that contain an OSGi bundle http://helpx.adobe.com/experience-manager/using/packaging-cq-applications-contain-osgi.html

Make sure that you include the OSGi bundle - and the bundle fragments.

1 - the main OSGi bundle contains the main SLing Servlet

2 - the bundle fragment wraps the simple JSON JAR.

Therefore you need these 2 OSGi bundles in your package. The other import statements shown in your pic are part of the OSGi bundle when you built it. 

smacdonald2008
Level 10
October 16, 2015

The key to getting the custom Sling Servlet app placed into a package is to place the 2 OSGi bundles under /apps - as discussed in the package article. See this section:

[img]appOSGi2.png[/img]

To get the OSGi bundles under /apps - you will have to get the 2 JAR files (the OSGi bundles) from your desktop to the JCR under /apps (as talked about in the package article). You can use the webdev tool to do that:

http://docs.adobe.com/docs/en/crx/2-3/how_to/webdav_access.html

smacdonald2008
Level 10
October 16, 2015

I personally like using a custom Java APP that posts files from the desktop to the AEM JCR.  Once you get that developed - its very fast and easy to use. 

 See this article to learn how to code this tool:

http://helpx.adobe.com/experience-manager/using/post_files.html