Getting NullPointerException while fetching property from repository in ATG

1.4k views Asked by At

I'm trying to fetch properties like first name and last name from profile repository, displaying it in jsp using droplet. Below is my sample code: SampleDroplet.java

public class SampleDroplet extends DynamoServlet {

private Repository mProfileRepository;
@Override
public void service(DynamoHttpServletRequest pReq, DynamoHttpServletResponse pRes)
        throws ServletException, IOException {

    String lFirstName = null;
    String lLastName = null;
    String lProfileId = pReq.getParameter("profileId");     
    try {
        RepositoryItem lItem = getProfileRepository().getItem(lProfileId, "user");
        lFirstName = (String) lItem.getPropertyValue("firstName");
        lLastName = (String) lItem.getPropertyValue("lastName");
    } catch (RepositoryException e) {
        e.printStackTrace();
    }
    pReq.setParameter("firstName", lFirstName);
    pReq.setParameter("lastName", lLastName);
    pReq.serviceParameter("output", pReq, pRes);
}

SampleDroplet.properties

$class=com.tap.droplet.SampleDroplet
scope=global
profileRepository=/atg/userProfiling/ProfileAdaptarRepository

SampleDroplet.jsp

<dsp:page>
<dsp:importbean bean="/atg/userprofiling/Profile" var="profile" />
<dsp:importbean bean="/com/tap/droplet/SampleDroplet" />
<dsp:getvalueof var="profileId" bean="Profile.id"/>
    <dsp:droplet name="SampleDroplet">
        <dsp:param name="profileId" value="${profileId}" />
        <dsp:oparam name="output">
            Profile's First Name : <dsp:valueof param="firstName"/>
                      Last Name : <dsp:valueof param="lastName"/>
        </dsp:oparam>
    </dsp:droplet>
</dsp:page>

I've tried displaying profileId in jsp it is working. But when i passed it to droplet it is showing NullPointerException

java.lang.NullPointerException
at com.tap.droplet.SampleDroplet.service(SampleDroplet.java:26)
at atg.servlet.DynamoServlet.service(DynamoServlet.java:152)
at atg.taglib.dspjsp.DropletTag.invokeServlet(DropletTag.java:420)
at atg.taglib.dspjsp.DropletTag.doAfterBody(DropletTag.java:705)
at     jsp_servlet._test._droplet.__sampledroplet._jsp__tag18(__sampledroplet.java:874)
Truncated. see log file for complete stacktrace

If anyone knows what is the issue please help me.

Thanks in advance

1

There are 1 answers

0
Artsiom Barysevich On

it looks like problem is here:

profileRepository=/atg/userProfiling/ProfileAdaptarRepository

Nucleus can't find this component:

  1. "userprofiling" should be in lower case.
  2. ProfileAdaptarRepository -> ProfileAdapterRepository