Java 创建注册页以在Liferay 6.1的用户表中创建用户帐户时出错?
在Liferay 6.1中创建注册portlet并将用户帐户存储在数据库中的默认Java 创建注册页以在Liferay 6.1的用户表中创建用户帐户时出错?,java,jsp,web,liferay,portlet,Java,Jsp,Web,Liferay,Portlet,在Liferay 6.1中创建注册portlet并将用户帐户存储在数据库中的默认user\uu表中时,我遇到了问题 我正在使用默认的Liferay类UserLocalServiceUtil及其方法UserLocalServiceUtil.addUser(creatorUserId、companyId、autoPassword、password1、password2、autoScreenName、屏幕名、电子邮件地址、facebookId、openId、区域设置、名字、中间名、姓氏、前缀XID、后
user\uu
表中时,我遇到了问题
我正在使用默认的Liferay类UserLocalServiceUtil
及其方法UserLocalServiceUtil.addUser(creatorUserId、companyId、autoPassword、password1、password2、autoScreenName、屏幕名、电子邮件地址、facebookId、openId、区域设置、名字、中间名、姓氏、前缀XID、后缀XID、男性、生日月、生日日、生日年、职务头衔、组ID、组织ID、角色ID、用户组ID、发送电子邮件、服务上下文);
我面对这个错误:
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)
...
看起来您正试图从portlet的呈现状态直接从jsp调用此方法-您应该在呈现之前从操作状态调用此方法。在呈现期间,您不应该更改任何状态
阅读关于portlet生命周期的更多详细说明。简言之:如果您习惯于在Servlet中执行JSP中的所有操作,那么您必须重新学习portlet:action和render是整齐分开的状态。通常portlet呈现的频率要比实际处理动作的频率高很多(由于一个页面上可以有许多不同的Portlet,因此只有一个Portlet可以处理一个操作,而所有Portlet都可以显示/呈现。您的password1或password2可能为null,并且autoPassword设置为true。Liferay尝试验证给定的密码,当比较null值时,会出现NullPointerException。您还可以发布一些不正确的代码吗调用
addUser
方法?作为Olaf Kock,您是从render
方法还是从JSP调用此代码?谢谢