1、
解壓
liferay-portal-src-4.4.1.rar
、
SpagoBI-src-1.9.4.rar
、
liferay-portal-tomcat-5.5-jdk5-4.4.1.rar
三個(gè)
rar
包到
workspace
目錄下
2、
打開
eclipse
,導(dǎo)入
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
保存后,代碼會(huì)根據(jù)
liferay4.4.1
的包來編譯代碼,容易看到錯(cuò)誤
?
?
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
中的代碼,添加一個(gè)方法:
/**
???
?
*
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
相應(yīng)目錄下
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
中不覆蓋已經(jīng)存在的
jar
包
14、?????????????
拷貝
SpagoBI-src-1.9.4\build\tomcat-server\conf\server.xml
中的
<Context
數(shù)據(jù)源到
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"
標(biāo)簽中的數(shù)據(jù)源定義
<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、?????????????
啟動(dòng)
liferay-portal-tomcat-5.5-jdk5-4.4.1\sbidata\database\start.bat
數(shù)據(jù)庫
24、?????????????
啟動(dòng)
tomcat?? liferay-portal-tomcat-5.5-jdk5-4.4.1\bin\startup.bat
?
?
?
?
?
?
?
?
5.
更改liferay 和sapgoBI的數(shù)據(jù)庫
Liferay
和sapgoBI默認(rèn)的數(shù)據(jù)庫都是內(nèi)存數(shù)據(jù)庫HSQL,為了方便開發(fā),我們需要更改為別的數(shù)據(jù)庫,下面一SQLserver為例來操作。
<
一>.更改liferay的數(shù)據(jù)庫
<1>.
在liferay官網(wǎng)上下載和所用liferay版本相同的SQL,例如我們現(xiàn)在的liferay版本是4.2.2,那么SQL就是:liferay-portal-sql-4.2.2,解壓后運(yùn)行create/create-sql-server.sql,在本地sqlserver中就創(chuàng)建了相應(yīng)的db
<2>
更改tomcat-liferay4.2.2/conf/Catalina/localhost下的ROOT.xml,將其中的內(nèi)容:
…
.
<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的驅(qū)動(dòng)包
,拷貝到tomcat-liferay4.2.2/common/ext下
<4>liferay
默認(rèn)的數(shù)據(jù)庫名稱為lportal,如果需要自定義一個(gè)數(shù)據(jù)庫,那么需要將將上面的數(shù)據(jù)源名稱修改,還要把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>
換為對(duì)應(yīng)數(shù)據(jù)庫的hibernate配置文件連接。
下面把<SPAGOBI_CONTEXT_PATH>http://10.16.202.74:8080/spagobi</SPAGOBI_CONTEXT_PATH>修改
到此,liferay4.2.2的db更換完畢。
?
<
二>更換SpagoBI1.9.4的數(shù)據(jù)庫,仍然以SQL server為例:
<1>.
從SpagoBI官網(wǎng)上下載sql,其名稱為:sqlserver-dbscript-1.9.4.zip
<2>.
解壓后執(zhí)行其中的SQLServer_create.sql,SQLServer_create_fk.sql,SQLserver_create_quartz_schema.sql和SQLServer_insert.sql,此時(shí)就會(huì)在本地SQLserver中建立spagoBI1.9.4相關(guān)的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的驅(qū)動(dòng)包
,拷貝到tomcat-liferay4.2.2/common/ext下,因?yàn)樵诟鼡Qliferay數(shù)據(jù)庫的時(shí)候已完成了這一步,所以在這里這個(gè)步驟可以省略。
以上就是更換SpagoBI1.9.4的db的步驟。
?