Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Unable to compile the JSP file

dragon2A
Level 6
Level 6

Hi Team,

  This is the  code written to build the packages. I am running this in AEM6.2. It's returning the below error "Unable to compile class for JSP: An error occurred at line: 51 in the generated java file Only a type can be imported. com.day.cq.packaging.CQPackageManager resolves to a package An error occurred at line: 82 in the jsp file: /apps/tools/components/listPage/createPackage.jsp CQPackageManager cannot be resolved to a type 79: packages.getNode(packPath).remove(); 80: packages.getSession().save(); 81: } 82: CQPackageManager pckgManager = sling.getService(CQPackageManager.class); 83: JcrPackage pack = pckgManager.createPackage(sess,pkgGroupName,packageName); 84: pckgManager.ensureVersion(pack); 85: DefaultWorkspaceFilter filters = new DefaultWorkspaceFilter(); An error occurred at line: 82 in the jsp file: /apps/tools/components/listPage/createPackage.jsp CQPackageManager cannot be resolved to a type 79: packages.getNode(packPath).remove(); 80: packages.getSession().save(); 81: } 82: CQPackageManager pckgManager = sling.getService(CQPackageManager.class); 83: JcrPackage pack = pckgManager.createPackage(sess,pkgGroupName,packageName); 84: pckgManager.ensureVersion(pack); 85: DefaultWorkspaceFilter filters = new DefaultWorkspaceFilter();"  can some one guide me how to fix this. I have copied the code as well. Thanks in advance.

<%@page session="false" import="javax.jcr.*,
        com.day.cq.wcm.api.Page,
        com.day.cq.wcm.api.PageManager,
        org.apache.sling.api.resource.Resource,
        com.day.cq.wcm.commons.WCMUtils,
        com.day.cq.wcm.api.NameConstants,
        com.day.cq.wcm.api.designer.Designer,
        com.day.cq.wcm.api.designer.Design,
        com.day.cq.wcm.api.designer.Style,
        org.apache.sling.api.resource.ValueMap,
        com.day.cq.wcm.api.components.ComponentContext,
        com.day.cq.wcm.api.components.EditContext,
        java.util.Date, java.text.SimpleDateFormat, 
        java.text.FieldPosition, java.text.ParsePosition,
        java.util.Iterator,
        javax.jcr.Property,
        javax.jcr.Node,
        javax.jcr.PropertyType,
        javax.jcr.Session,
        com.day.cq.commons.jcr.JcrUtil,
        javax.jcr.PropertyIterator,
        com.day.cq.replication.ReplicationQueue,
        com.day.cq.replication.ReplicationQueue.Entry,
        java.util.Iterator,
        java.io.ObjectInputStream,
        java.io.ByteArrayInputStream,
        com.day.cq.replication.ReplicationContentFacade,
        org.apache.sling.api.resource.ResourceResolver,
        java.io.PrintWriter,
        javax.servlet.jsp.JspWriter" %><%
%><%
%><%
%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%
%><%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><%
%><%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><%
%>
<%@include file="/libs/foundation/global.jsp"%>
<sling:defineObjects />
<%@page import="com.day.cq.packaging.CQPackageManager"%>
<%@page import="com.day.jcr.vault.packaging.PackageManager"%>
<%@page import="com.day.cq.wcm.siteimporter.ImporterContext"%>
<%@page import="com.day.jcr.vault.packaging.JcrPackageManager"%>
<%@page import="com.day.jcr.vault.packaging.PackagingService"%>
<%@page import="com.day.jcr.vault.fs.config.DefaultWorkspaceFilter"%>
<%@page import="com.day.jcr.vault.packaging.JcrPackage"%>
<%@page import="com.day.jcr.vault.fs.api.PathFilterSet"%>
<%@page import="com.day.jcr.vault.util.HtmlProgressListener"%>
<%@page import="org.osgi.framework.BundleContext"%>

<%@page import="org.apache.jackrabbit.util.Text"%>
<%@page import="com.day.cq.rewriter.linkchecker.LinkCheckerSettings"%>
<%@page import="java.util.HashSet"%>
<%@page import="java.util.Set"%>
<html>
<head>
<title>package creation</title>
</head>
    <body>

<%
Session sess = resourceResolver.adaptTo(Session.class);
BundleContext bundleContext = sling.getService(BundleContext.class);
//ImporterContext ctx = ImporterContext.createContext(slingRequest,slingResponse,bundleContext);
//Session sess = sling.getResolver().adaptTo(Session.class);
HttpSession session = request.getSession();
Set<String> allmodifiedPath = new HashSet<String>();
if(null!=session.getAttribute("allModifiedPath")){
    allmodifiedPath = (HashSet<String>)session.getAttribute("allModifiedPath");
}
String pkgGroupName = "CQSupportTool";
String packageName = request.getParameter("pkgName")!=null && !"".equals(request.getParameter("pkgName"))?request.getParameter("pkgName"):"ModifiedPagePackage";

JcrPackageManager packMgr = PackagingService.getPackageManager(sess);

// check if package already exists
String packPath = pkgGroupName + "/" + packageName + ".zip";
Node packages = packMgr.getPackageRoot();
if (packages.hasNode(packPath)) {
packages.getNode(packPath).remove();
packages.getSession().save();
}
CQPackageManager pckgManager = sling.getService(CQPackageManager.class);
JcrPackage pack = pckgManager.createPackage(sess,pkgGroupName,packageName);
pckgManager.ensureVersion(pack);
DefaultWorkspaceFilter filters = new DefaultWorkspaceFilter();
out.println("<br> Adding following filter path <br> ");
for(String path:allmodifiedPath){
    out.println(path);
     filters.add(new PathFilterSet(path));
}

pack.getDefinition().setFilter(filters, true);
packMgr.assemble(pack, null);
String serverName = (request.getProtocol().split("/")[0]).toLowerCase()+"://"+request.getServerName();
if(!"".equals(request.getServerPort())){
    serverName+=":"+request.getServerPort();
}

String docroot = serverName +"/crx/packmgr/service.jsp";
out.println("<br><br><strong>Package Creation Done with name "+ packageName +"</strong>");
%>
<form method="get" action="<%=docroot %>">
<input type="hidden" name="cmd" id="cmd" value="get"></input>
<input type="hidden" name="name" id="name" value="<%=Text.escape(packageName) %>"></input>
<input type="hidden" name="group" id="group" value="<%=Text.escape(pkgGroupName) %>"></input>
<input type="submit" value="Download Package"></input>
</form>
</body>
</html>

1 Accepted Solution
dragon2A
Correct answer by
Level 6
Level 6

Hi ,

I can be able to use the content packager to pull the delta content from production. Thanks for the help. 

 

Thanks

View solution in original post

4 Replies
smacdonald2008
Level 10
Level 10

I would avoid JSP and look at using Java and the Package Manager API and build as an OSGi bundle. See this article for details on using Package Manager API: 

https://helpx.adobe.com/experience-manager/using/dynamic_aem_packages.html

THis article is based on this GITHUB code: 

https://github.com/Adobe-Consulting-Services/acs-aem-commons/tree/feature/6.2-compatibility

dragon2A
Correct answer by
Level 6
Level 6

Hi ,

I can be able to use the content packager to pull the delta content from production. Thanks for the help. 

 

Thanks

View solution in original post

Nirmal_Jose
Community Advisor
Community Advisor

Hi dragon2A,

Sorry - can you let us know how you resolved the issue?

Did you change the import ? I am struck at the same problem. Please help.

Thanks

dragon2A
Level 6
Level 6

Hi ,

I have used the acs-commons content-packagers to get it done my work. 

My use case needs to copy the delta content from AEM5.6 to AEM6.2 after the initial migration. 

I didn't concentrate on that problem.

Thanks