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的步驟。
?