2012-09-03 1 views
0

Liferay 6.1에서 가입 포틀릿을 생성하고 데이터베이스의 기본값 인 User_ 테이블에 사용자 계정을 저장하는 동안 문제가 발생했습니다. 당신이 당신의 포틀릿의 렌더링 상태에서이 메소드를 호출하려는처럼 직접Liferay 6.1의 User_ 테이블에 사용자 계정을 만들 수있는 가입 페이지를 만드는 동안 오류가 발생 했습니까?

java.lang.NullPointerException 
    at com.liferay.portal.security.pwd.PwdToolkitUtil.validate(PwdToolkitUtil.java:40) 
    at com.liferay.portal.service.impl.UserLocalServiceImpl.validate(UserLocalServiceImpl.java:5405) 
    at com.liferay.portal.service.impl.UserLocalServiceImpl.addUserWithWorkflow(UserLocalServiceImpl.java:592) 
    at com.liferay.portal.service.impl.UserLocalServiceImpl.addUser(UserLocalServiceImpl.java:463) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:112) 
    at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71) 
    at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108) 
    at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:59) 
    at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108) 
    at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:59) 
    at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108) 
    at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:211) 
    at $Proxy96.addUser(Unknown Source) 
    at com.liferay.portal.service.UserLocalServiceUtil.addUser(UserLocalServiceUtil.java:445) 
    at org.apache.jsp.register_jsp._jspService(register_jsp.java:123) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:113) 
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) 
    at com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:316) 
    at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:105) 
    at com.liferay.util.bridges.mvc.MVCPortlet.include(MVCPortlet.java:366) 
    at com.liferay.util.bridges.mvc.MVCPortlet.include(MVCPortlet.java:382) 
    at com.liferay.util.bridges.mvc.MVCPortlet.doDispatch(MVCPortlet.java:315) 
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) 
... 
+0

또한 'addUser' 메서드를 호출하는 코드를 게시 할 수 있습니까? Olaf Kock [언급] (http://stackoverflow.com/a/12251203/468763)'render' 메소드 나 JSP에서이 코드를 호출하고 있습니까? 감사합니다. –

답변

0

password1 또는 password2는 아마도 null입니다. autoPassword가 true로 설정된 경우 Liferay는 주어진 암호의 유효성을 검사하려고 시도하고 Null 값을 비교할 때 NullPointerException이 발생합니다 ..

+0

감사합니다. –

1

가 보이는 :

나는 UserLocalServiceUtil.addUser(creatorUserId, companyId, autoPassword, password1, password2, autoScreenName, screenName, emailAddress, facebookId, openId, locale, firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds, organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);

내가이 오류에 직면 기본을 Liferay 클래스 UserLocalServiceUtil 및 그 방법을 사용하고 있습니다 jsp에서 - 렌더링하기 전에 액션 상태에서이 작업을 수행해야합니다. 렌더링하는 동안 어떤 상태도 변경하지 않아야합니다.

자세히 설명하는 포틀릿 수명주기를 읽으십시오. 즉, 서블릿의 JSP에서 모든 것을 처리하는 데 익숙하다면 포틀릿을 다시 배워야합니다. 액션과 렌더링이 깔끔하게 분리 된 상태입니다. 일반적으로 포틀릿은 실제로 작업을 처리하는 것보다 훨씬 더 자주 렌더링됩니다 (많은 다른 포틀릿이 한 페이지에있을 수 있기 때문에 하나만 작업을 처리/표시 할 수 있습니다)

관련 문제