2016-07-22 4 views
0

Я пытаюсь получить свойства, такие как имя и фамилия из репозитория профилей, отображая его в jsp с использованием капли. Ниже мой пример кода: SampleDroplet.javaПолучение NullPointerException при извлечении свойства из репозитория в ATG

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> 

Я пытался отображения ProfileID в JSP она работает. Но когда я прошел его капелька она показывает 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 

Если кто-нибудь знает, что это вопрос, пожалуйста, помогите мне.

Заранее спасибо

+0

Вопрос находится на линии 26 и, как у нас есть только экстракт кода, который я не могу сказать вам, где это в приведенном выше. При угадывании lProfileId имеет значение null ... – bated

+0

Да, в капельном профилеId идет null. Я попытался отобразить profileId в jsp без капли, он работает, но значение не переходит в капельку –

+0

Можете ли вы подтвердить, что профиль временно? Это можно получить с помощью Profile.isTransient в JSP. – bated

ответ

1

это выглядит как проблема здесь:

profileRepository=/atg/userProfiling/ProfileAdaptarRepository 

Nucleus не может найти этот компонент:

  1. "userprofiling" должны быть в нижнем регистре.
  2. ProfileAdaptarRepository -> ProfileAdapterRepository