1.下载并安装openmeetings2.0(此版本为openmeetings转入apache下的第一个发布版本,其中存在一个Out of memory重大问题,其计划在2.1版本中解决,此问题不解决建议暂时不要使用2.0到生产环境中,因为OOM的问题非常严重,用上一会就会出现,并且tomcat会自动down掉)
5.使用以上生成的seucre login url进入指定会议室
http://incubator.apache.org/openmeetings/downloads.html
安装方法:参考http://incubator.apache.org/openmeetings/installation.html 注:要安装一堆第三方开源组件以实现图片或doc等文件转换
2.下载axis2
http://axis.apache.org/axis2/java/core/
3.使用axis2 中的WSDL2Java工具生成openmeetings的webservice客户端stub
首先要先启动openmeetings,并且其可以正常访问
执行生成脚本如下:(替换org.tshark.mes.openmeetings.client为目标package)
F:\axis2-1.6.2\bin\WSDL2Java -uri http://192.168.1.118:5080/openmeetings/services/UserService?wsdl -p org.tshark.mes.openmeetings.client -d adb -s
4.使用以下方法生成secure login url(直接进入访问的安全访问地址)
public String generateSecureLoginUrl(String userName,int roomId){
try {
//生成sessionId
UserServiceStub userServiceStub = new UserServiceStub("http://127.0.0.1:5080/openmeetings/services/UserService");
GetSession getSession = new GetSession();
GetSessionResponse session = userServiceStub.getSession(getSession);
String sessionId = session.get_return().getSession_id();
log.debug("Meeting SessionId:"+sessionId);
//以管理员身份登录
LoginUser loginUser = new LoginUser();
loginUser.setSID(sessionId);
loginUser.setUsername("admin");
loginUser.setUserpass("admin");
LoginUserResponse loginUserResponse = userServiceStub.loginUser(loginUser);
long loginResult = loginUserResponse.get_return();
log.debug("Meeting LoginResult:" + loginResult);
//登录失败
if(loginResult < 0){
return null;
}
//生成secure room hash
SetUserObjectAndGenerateRoomHash userObjectAndGenerateRoomHash = new SetUserObjectAndGenerateRoomHash();
userObjectAndGenerateRoomHash.setSID(sessionId);
userObjectAndGenerateRoomHash.setUsername(userName);
userObjectAndGenerateRoomHash.setFirstname(userName);
userObjectAndGenerateRoomHash.setLastname("");
userObjectAndGenerateRoomHash.setProfilePictureUrl("");
userObjectAndGenerateRoomHash.setEmail("");
userObjectAndGenerateRoomHash.setExternalUserId("");
userObjectAndGenerateRoomHash.setExternalUserType("");
userObjectAndGenerateRoomHash.setRoom_id(roomId);
userObjectAndGenerateRoomHash.setBecomeModeratorAsInt(0);
userObjectAndGenerateRoomHash.setShowAudioVideoTestAsInt(1);
SetUserObjectAndGenerateRoomHashResponse userObjectAndGenerateRoomHashResponse = userServiceStub.setUserObjectAndGenerateRoomHash(userObjectAndGenerateRoomHash);
String roomHash = userObjectAndGenerateRoomHashResponse.get_return();
log.debug("Meeting secure roomHash:" + roomHash);
//这里注意一定要使用main.as3.swf10.swf而不是main.swf8.swf
String ssoUrl = "http://127.0.0.1:5080/openmeetings/main.as3.swf10.swf?secureHash=" + roomHash + "&language=11&lzproxied=solo&lc_SID=139032";
log.debug("Final secure login url:" + ssoUrl);
return ssoUrl;
} catch (Exception e) {
log.error(e.getMessage(),e);
throw new TSharkException(e);
}
}
5.使用以上生成的seucre login url进入指定会议室
@RequestMapping(value = "/room/admin")
public void room(HttpServletRequest request, HttpServletResponse response) throws Exception {
String roomId = request.getParameter("roomId");
String roomSecureLoginUrl = meetingManager.generateSecureLoginUrl("meetingadmin", Integer.valueOf(roomId));
response.sendRedirect(roomSecureLoginUrl);
}