2016-07-22 17 views
0

Ich versuche, Eigenschaften wie Vorname und Nachname aus dem Profilrepository abzurufen und in jsp mit tröpfchen anzuzeigen. Unten ist mein Beispielcode: SampleDroplet.javaAbrufen der NullPointerException beim Abrufen der Eigenschaft aus dem Repository in 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> 

Ich habe versucht, in der Profil-jsp anzeigt es funktioniert. Aber wenn ich es übergeben Tröpfchen es Nullpointer

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 

zeigt Wenn jemand weiß, was das Problem ist mir bitte helfen.

Vielen Dank im Voraus

+0

Die Ausgabe in Zeile 26 und da wir nur einen Auszug aus dem Code habe ich kann Ihnen nicht sagen, wo das in der oben ist. Bei einer Schätzung lProfileId ist null ... – bated

+0

Ja, in Tröpfchen profileId kommt Null. Ich habe versucht, profileId in jsp ohne Tröpfchen anzuzeigen, es funktioniert aber Wert wird nicht in Tröpfchen –

+0

Können Sie bestätigen, wenn das Profil vorübergehend ist? Dies kann durch Profile.isTransient in der JSP erhalten werden. – bated

Antwort

1

es wie Problem aussieht, ist hier:

  1. "userprofiling" sollte in Kleinbuchstaben eingegeben werden:

    profileRepository=/atg/userProfiling/ProfileAdaptarRepository 
    

    Nucleus diese Komponente nicht finden kann.

  2. ProfileAdaptarRepository -> ProfileAdapterRepository