Expand my Community achievements bar.

SOLVED

AEM6.1 create servlet bundle in crxde lite - NullPointerException

Avatar

Level 1

I've got logs..

Please check bus in java.

=========================================================

07.12.2017 14:19:36.544 *ERROR* [0:0:0:0:0:0:0:1 [1512623976471] POST /libs/crxde/build HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught Throwable

javax.servlet.ServletException: java.lang.NullPointerException

at com.day.crx.ide.AbstractCRXDEServlet.throwError(AbstractCRXDEServlet.java:139)

at com.day.crx.ide.CRXDEBuildServlet.handleAuthenticatedRequest(CRXDEBuildServlet.java:178)

at com.day.crx.ide.AbstractCRXDEServlet.processRequest(AbstractCRXDEServlet.java:98)

at com.day.crx.ide.AbstractCRXDEServlet.doPost(AbstractCRXDEServlet.java:79)

at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:148)

at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:344)

at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:375)

at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:511)

at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)

at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:146)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:357)

at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:166)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:284)

at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)

at com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:124)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.cq.social.commons.security.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:133)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:349)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.core.impl.warp.TimeWarpFilter.doFilter(TimeWarpFilter.java:106)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:295)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:64)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.cq.social.commons.cors.CORSAuthenticationFilter.doFilter(CORSAuthenticationFilter.java:91)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:251)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.theme.impl.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:74)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.cq.history.impl.HistoryRequestFilter.doFilter(HistoryRequestFilter.java:107)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.day.cq.wcm.designimporter.CanvasPageDeleteRequestFilter.doFilter(CanvasPageDeleteRequestFilter.java:88)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:83)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:77)

at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:56)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:128)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.cq.dam.s7imaging.impl.auth.MemoryTokenAuthHandler.doFilter(MemoryTokenAuthHandler.java:156)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter.doFilter(BackgroundServletStarterFilter.java:135)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.doFilter(ResourceResolverHelperImpl.java:81)

at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)

at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:153)

at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:205)

at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:339)

at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:300)

at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:93)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:50)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:128)

at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)

at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:55)

at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)

at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290)

at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)

at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:298)

at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)

at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:115)

at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)

at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)

at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)

at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)

at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)

at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)

at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:76)

at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:49)

at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)

at org.eclipse.jetty.server.Server.handle(Server.java:370)

at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)

at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)

at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)

at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)

at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)

at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NullPointerException: null

at org.apache.felix.scrplugin.helper.ClassScanner.getComponentDescriptors(ClassScanner.java:465)

at org.apache.felix.scrplugin.helper.ClassScanner.getDescription(ClassScanner.java:433)

at org.apache.felix.scrplugin.SCRDescriptorGenerator.createComponent(SCRDescriptorGenerator.java:398)

at org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:161)

at com.day.crx.ide.BundleBuilder.generateScrDescriptors(BundleBuilder.java:624)

at com.day.crx.ide.BundleBuilder.build(BundleBuilder.java:245)

at com.day.crx.ide.CRXDEBuildServlet.handleAuthenticatedRequest(CRXDEBuildServlet.java:165)

... 120 common frames omitted

======================================================================

package com.kjm.simple.example;

import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.OptingServlet;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;

import javax.servlet.ServletException;
import java.io.IOException;

@SlingServlet(

    resourceTypes={"/bin/test/MyServlet"},

    extensions={"json"},

    generateService = true,

    generateComponent = true,

    label="Sample servlet",

    methods={"GET"},

    metatype=true,

    name="com.kjm.simple.example.MyServlet"

)
public class MyServlet extends SlingSafeMethodsServlet {

    @Override
    protected void doGet(SlingHttpServletRequest req, SlingHttpServletResponse res) throws ServerException, IOException {

        res.setContentType("application/json");

        try{
            JSONObject obj = new JSONObject();
         obj.put("success", true);
         obj.put("test", "test");

            res.getWriter().println(obj.toString());
        }catch(JSONException e){
            System.out.println(e);
        }

    }

}

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi,

I agree with Scott. Please never use CRXDE to create OSGi Bundles. Here is the best example to create OSGI Bundle using maven.

Adobe Experience Manager Help | Creating your first Adobe Experience Manager Service using an Maven ...

Thanks,

Ratna.

View solution in original post

8 Replies

Avatar

Level 1

thanks reply ^^

however, json is not problem now.

i've tried below it. still not working.

===================================================

@Override

    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {

        PrintWriter responseWriter = response.getWriter();

        responseWriter.append("This is my TestServlet");

        responseWriter.flush();

    }

Avatar

Level 6

Hi can you pls try this out

@Override

    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {

       

response.setContentType("text/html");

response.getWriter().write("This is my TestServlet");

        response.setStatus(SlingHttpServletResponse.SC_OK);

    }

Avatar

Level 1

i've tried it. but not working.

still  java.lang.NullPointerException

thanks

Avatar

Level 8

Hi,

I tried the below in my local and it works perfectly fine

import java.io.IOException;

import javax.servlet.Servlet;

import javax.servlet.ServletException;

import org.apache.sling.api.SlingHttpServletRequest;

import org.apache.sling.api.SlingHttpServletResponse;

import org.apache.sling.api.servlets.SlingAllMethodsServlet;

import org.osgi.service.component.annotations.Component;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

* Servlet that returns back mock json, based on the parameters passed.

*/

@Component(immediate = true, service = Servlet.class, property = { "sling.servlet.paths=/bin/testservlet",

"sling.servlet.methods=get" })

public class TestServlet extends SlingAllMethodsServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

* Logger.

*/

private static final Logger LOG = LoggerFactory.getLogger(TestServlet.class);

/**

* The method called by the get. {@inheritDoc}

*/

@Override

protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response)

throws ServletException, IOException {

response.getWriter().println("TEST SERVLET");

}

}

Avatar

Level 10

Also - creating OSGi bundles in CRXDE lite is not best practice - please create them in a Maven project.

Adobe Experience Manager Help | Creating your first Adobe Experience Manager Service using an Maven ...

That is an older Archetype - see this for creating a servlet in a more recent archetype -- Creating a Mail List Sign Up Component for the Experience Manager Toy Store Site

Avatar

Level 10

Here is a article that will show you how to create a servlet using Maven:

Scott's Digital Community: Submitting Adobe Experience Manager form data to custom Sling Servlets

You can watch the video too.

Avatar

Correct answer by
Level 10

Hi,

I agree with Scott. Please never use CRXDE to create OSGi Bundles. Here is the best example to create OSGI Bundle using maven.

Adobe Experience Manager Help | Creating your first Adobe Experience Manager Service using an Maven ...

Thanks,

Ratna.