[开发] Liferay portal jsp页面获取所有用户信息出错? 急

camel113 2009-08-20
jsp页面获取所有用户信息代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.*"%>
<%@page import="com.liferay.portal.service.UserLocalServiceUtil"%>
<%@page import="com.liferay.portal.model.User"%>
<%@page import="cn.gov.jssw.webcms.dao.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%
    List<User> users = (List<User>)session.getAttribute("users");
    if(users==null) users = UserLocalServiceUtil.getUsers(0, 20);
    PageSet pageset=(PageSet)request.getAttribute("pageSet");
    if(pageset==null){
         int rowcount=UserLocalServiceUtil.getUsersCount();
         pageset=new PageSet();
         pageset.setRowcount(rowcount);
         pageset.setCurrentpage(1);
         pageset.setPagecount((rowcount+20-1)/20);
         pageset.setPagesize(20);
         request.setAttribute("pageSet", pageset);

    }
%>

其中UserLocalServiceUtil 类引用的是portal-service.jar ,但是现在运行此页面的时候出现下面的错误:
7:    "http://www.w3.org/TR/html4/loose.dtd">
8: <%
9:     List<User> users = (List<User>)session.getAttribute("users");
10:     if(users==null) users = UserLocalServiceUtil.getUsers(0, 20);
11:     PageSet pageset=(PageSet)request.getAttribute("pageSet");
12:     if(pageset==null){
13:          int rowcount=UserLocalServiceUtil.getUsersCount();


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

java.lang.RuntimeException: UserLocalService is not set
	com.liferay.portal.service.UserLocalServiceUtil.getService(UserLocalServiceUtil.java:871)
	com.liferay.portal.service.UserLocalServiceUtil.getUsers(UserLocalServiceUtil.java:89)
	org.apache.jsp.ShowUsers_jsp._jspService(ShowUsers_jsp.java:66)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


我查看了下UserLocalServiceUtil 类的源码,报错原因是UserLocalServiceUtil类里面调用的接口为空,才报出上面的错误java.lang.RuntimeException: UserLocalService is not set

UserLocalServiceUtil类相应源码如下:
	public static UserLocalService getService() {
		if (_service == null) {
			throw new RuntimeException("UserLocalService is not set");
		}

		return _service;
	}

	public void setService(UserLocalService service) {
		_service = service;
	}

	private static UserLocalService _service;


fly_ever 2009-11-06
你用的liferay是哪个版本的啊?
我用的4.3.3,都没有这个方法,不过我用的下面的方法能够正确执行UserLocalServiceUtil.getUserByScreenName(1,userName)

你这个应该是没有通过spring取得UserLocalServiceUtil的实例,因此没有注入相应的UserLocalService实例。
Global site tag (gtag.js) - Google Analytics