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

Unable to compile the JSP file

Avatar

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

Avatar

Correct answer by
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

Avatar

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

Avatar

Correct answer by
Level 6

Hi ,

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

 

Thanks

Avatar

Employee 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

Avatar

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