1、
解压
liferay-portal-src-4.4.1.rar
、
SpagoBI-src-1.9.4.rar
、
liferay-portal-tomcat-5.5-jdk5-4.4.1.rar
三个
rar
包到
workspace
目录下
2、
打开
eclipse
,导入
liferay-portal-src-4.4.1
和
SpagoBI-src-1.9.4
3、
加入
maven
依赖
4、
在
eclipse
中修改
SpagoBI-src-1.9.4\LiferayPortalSecurityProvider\pom.xml
中的
<
dependency
>
<
groupId
>
liferay
</
groupId
>
<
artifactId
>
liferay.portal-service
</
artifactId
>
<
version
>
4.2.2
</
version
>
<
scope
>
system
</
scope
>
<
systemPath
>
${liferay.lib.dir}/portal-service.jar
</
systemPath
>
</
dependency
>
<
dependency
>
<
groupId
>
liferay
</
groupId
>
<
artifactId
>
liferay.portal-kernel
</
artifactId
>
<
version
>
4.2.2
</
version
>
<
scope
>
system
</
scope
>
<
systemPath
>
${liferay.lib.dir}/portal-kernel.jar
</
systemPath
>
</
dependency
>
将
<systemPath
路径指为
liferay-portal-tomcat-5.5-jdk5-4.4.1/common/lib/ext/portal-service.jar
和
liferay-portal-tomcat-5.5-jdk5-4.4.1/common/lib/ext/portal-kernel.jar
例如:
<
dependency
>
<
groupId
>
liferay
</
groupId
>
<
artifactId
>
liferay.portal-service
</
artifactId
>
<
version
>
4.2.2
</
version
>
<
scope
>
system
</
scope
>
<
systemPath
>
E:/workspacse_all/liferay-spagobi-4.4.1/liferay-portal-tomcat-5.5-jdk5-4.4.1/common/lib/ext/portal-service.jar
</
systemPath
>
</
dependency
>
<
dependency
>
<
groupId
>
liferay
</
groupId
>
<
artifactId
>
liferay.portal-kernel
</
artifactId
>
<
version
>
4.2.2
</
version
>
<
scope
>
system
</
scope
>
<
systemPath
>
E:/workspacse_all/liferay-spagobi-4.4.1/liferay-portal-tomcat-5.5-jdk5-4.4.1/common/lib/ext/portal-kernel.jar
</
systemPath
>
</
dependency
>
这样在
eclipse
保存后,代码会根据
liferay4.4.1
的包来编译代码,容易看到错误
5、
修改代码
SpagoBI-src-1.9.4\LiferayPortalSecurityProvider\src\it\eng\spagobi\security\LiferaySecurityProviderImpl.java
中的:
User user =
UserServiceUtil.getUserById(userName);
为
User user =
UserServiceUtil.getUserById(Long.parseLong(userName));
6、
修改代码
SpagoBI-src-1.9.4\LiferayPortalSecurityProvider\src\it\eng\spagobi\security\LiferayUserProfileImpl.java
中的:
User user =
UserServiceUtil.getUserById(userUniqueIdentifier);
为
User user = UserServiceUtil.getUserById(Long.parseLong(userUniqueIdentifier));
7、
紧接着修改下面的
userAttributes.put(USER_ID,
user.getUserId());
为
userAttributes.put(USER_ID,
user.getUserId()+"");
修改
liferay-portal-src-4.4.1\portal-impl\src\com\liferay\portal\servlet\taglib\portlet\ActionURLTagUtil.java
中的代码,添加一个方法:
/**
*
Terry
添加
*
@param
action
*
@param
windowState
*
@param
portletMode
*
@param
var
*
@param
varImpl
*
@param
secure
*
@param
portletName
*
@param
anchor
*
@param
encrypt
*
@param
doAsUserId
*
@param
portletConfiguration
*
@param
params
*
@param
writeOutput
*
@param
pageContext
*
@return
*
@throws
JspException
*/
public
static
String doEndTag(
boolean
action, String windowState, String portletMode, String var,
String varImpl, Boolean secure,
String portletName, Boolean anchor,
Boolean encrypt, String doAsUserId,
Boolean portletConfiguration,
Map params,
boolean
writeOutput, PageContext pageContext)
throws
JspException {
try
{
long
lDoAsUserId = 0;
if
(
null
!=
doAsUserId && !
""
.equals(doAsUserId)
&& Long.parseLong(doAsUserId)>0) {
lDoAsUserId = Long.parseLong(doAsUserId);
}
return
doEndTag(action,
windowState, portletMode, var,
varImpl, secure, portletName,
anchor,
encrypt, lDoAsUserId,
portletConfiguration,
params, writeOutput,
pageContext);
}
catch
(Exception e) {
_log
.error(e,
e);
throw
new
JspException(e);
}
8、
}
9、
到这里
spagobi
部分的代码就修改完了。
10、
将
liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps\ROOT\WEB-INF\lib\portal-impl.jar
使用
winrar
文件打开到
portal-impl.jar\com\liferay\portal\servlet\taglib\portlet
把里面的
ActionURLTagUtil.class
文件删除,将
liferay-portal-src-4.4.1\bin\com\liferay\portal\servlet\taglib\portlet
下面修改后的
class
文件拖到
portal-impl.jar
相应目录下
11、
在
SpagoBI-src-1.9.4.
路径下使用
maven
命令
mvn -Pspagobi-liferay package
12、
13、
拷贝
SpagoBI-src-1.9.4\build\tomcat-server\common\lib\ext
下的
*.jar
到
liferay-portal-tomcat-5.5-jdk5-4.4.1\common\lib\ext
中不覆盖已经存在的
jar
包
14、
拷贝
SpagoBI-src-1.9.4\build\tomcat-server\conf\server.xml
中的
<Context
数据源到
liferay-portal-tomcat-5.5-jdk5-4.4.1\conf\server.xml
中
15、
把
liferay-portal-tomcat-5.5-jdk5-4.4.1\conf\server.xml
中
<Context
path="/spagobi"
标签中的数据源定义
<Resource
剪切到
liferay-portal-tomcat-5.5-jdk5-4.4.1\conf\context.xml
中
16、
拷贝
SpagoBI-src-1.9.4\build\tomcat-server\webapps
下的所有文件到
liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps
下
17、
修改
liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps\spagobi\WEB-INF\conf
下的
cms.xml
,将其中
<PARAMETERS>
<PARAMETER
name="repository_path" value="${SERVER_HOME}/sbidata/jcrRepositoryFS/"
/>
<PARAMETER
name="conf_file_path"
value="${SERVER_HOME}/sbidata/jcrRepositoryFS/repository.xml" />
</PARAMETERS>
替换为
<PARAMETERS>
<PARAMETER
name="repository_path" value="jcrRepositoryFS/" />
<PARAMETER
name="conf_file_path"
value="jcrRepositoryFS/repository.xml" />
</PARAMETERS>
18、
在
liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps\spagobi
目录下建立文件夹
jcrRepositoryFS
19、
在
jcrRepositoryFS
文件夹下建立
repository
文件夹
20、
拷贝
SpagoBI-src-1.9.4\SpagoBIProject\src
下的
repository.xml
文件到
liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps\spagobi\jcrRepositoryFS
下
21、
拷贝
SpagoBI-src-1.9.4\SpagoBIUtilityFiles\liferay-libraries
下的
hibernate-3.1rc2.jar
到
liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps\spagobi\WEB-INF\lib
下
22、
把
SpagoBI-src-1.9.4\SpagoBIUtilityFiles\tomcat-server
下的
sbidata
拷贝到
liferay-portal-tomcat-5.5-jdk5-4.4.1
目录下
23、
启动
liferay-portal-tomcat-5.5-jdk5-4.4.1\sbidata\database\start.bat
数据库
24、
启动
tomcat liferay-portal-tomcat-5.5-jdk5-4.4.1\bin\startup.bat
5.
更改liferay 和sapgoBI的数据库
Liferay
和sapgoBI默认的数据库都是内存数据库HSQL,为了方便开发,我们需要更改为别的数据库,下面一SQLserver为例来操作。
<
一>.更改liferay的数据库
<1>.
在liferay官网上下载和所用liferay版本相同的SQL,例如我们现在的liferay版本是4.2.2,那么SQL就是:liferay-portal-sql-4.2.2,解压后运行create/create-sql-server.sql,在本地sqlserver中就创建了相应的db
<2>
更改tomcat-liferay4.2.2/conf/Catalina/localhost下的ROOT.xml,将其中的内容:
…
.
<Resource
name="jdbc/LiferayPool"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:lportal"
username="sa"
password=""
maxActive="20"
/>
…
.
改为:
<Resource
name="jdbc/LiferayPool"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
username="sa"
password="bbbbb"
url="jdbc:sqlserver://localhost;DatabaseName=lportal"
maxActive="20"
/>
<3>.
把sqljdbc的驱动包,拷贝到tomcat-liferay4.2.2/common/ext下
<4>liferay
默认的数据库名称为lportal,如果需要自定义一个数据库,那么需要将将上面的数据源名称修改,还要把liferay-portal-tomcat-5.5-jdk5-4.4.1\webapps\spagobi\WEB-INF\conf\spagobi下的spagobi.xml中
<HIBERNATE-CFGFILE>hibernate.cfg.sqlserver.xml</HIBERNATE-CFGFILE>
换为对应数据库的hibernate配置文件连接。
下面把<SPAGOBI_CONTEXT_PATH>http://10.16.202.74:8080/spagobi</SPAGOBI_CONTEXT_PATH>修改
到此,liferay4.2.2的db更换完毕。
<
二>更换SpagoBI1.9.4的数据库,仍然以SQL server为例:
<1>.
从SpagoBI官网上下载sql,其名称为:sqlserver-dbscript-1.9.4.zip
<2>.
解压后执行其中的SQLServer_create.sql,SQLServer_create_fk.sql,SQLserver_create_quartz_schema.sql和SQLServer_insert.sql,此时就会在本地SQLserver中建立spagoBI1.9.4相关的DB和Table。
<3>.
修改tomcat-liferay4.2.2/conf下的server.xml,把db的连接由HSQL改为SQLServer。
…
<Resource
name="jdbc/sbifoodmart"
auth="Container"
type="javax.sql.DataSource"
username="sa"
password=""
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost:9001/foodmart"
/>
…
..
改为:
<Resource
name="jdbc/sbifoodmart"
auth="Container"
type="javax.sql.DataSource"
username="sa"
password="bbbbb"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost;DatabaseName=suggested"
/>
其余依次类推
…
<4>.
把sqljdbc的驱动包,拷贝到tomcat-liferay4.2.2/common/ext下,因为在更换liferay数据库的时候已完成了这一步,所以在这里这个步骤可以省略。
以上就是更换SpagoBI1.9.4的db的步骤。