diff --git a/pom.xml b/pom.xml index 2e8ecbe7082596ded05ebc0141a4607754ad3517..64aaea0ad5eae502cbccd9fa2df84b8ec27b3f66 100644 --- a/pom.xml +++ b/pom.xml @@ -1616,9 +1616,9 @@ <version>1.1</version> </dependency> <dependency> - <groupId>org.openolat.openmeetings</groupId> - <artifactId>openmeetings-stubs</artifactId> - <version>2.0-SNAPSHOT</version> + <groupId>org.openolat</groupId> + <artifactId>openmeetingws</artifactId> + <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> diff --git a/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java b/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java index 62f10b7d6150f22f0dcd2ad573cf67b45f9cb350..d9e19ca777a1a8d975848085381533db3ecdf314 100644 --- a/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java +++ b/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java @@ -31,8 +31,19 @@ import java.util.UUID; import javax.annotation.PostConstruct; import javax.ws.rs.core.UriBuilder; +import javax.xml.ws.BindingProvider; import org.apache.axis2.AxisFault; +import org.apache.openmeetings.axis.services.GetRoomsWithCurrentUsersByListAndType; +import org.apache.openmeetings.axis.services.RoomService; +import org.apache.openmeetings.axis.services.RoomServicePortType; +import org.apache.openmeetings.axis.services.UserService; +import org.apache.openmeetings.axis.services.UserServicePortType; +import org.apache.openmeetings.axis.services.xsd.RoomReturn; +import org.apache.openmeetings.axis.services.xsd.RoomUser; +import org.apache.openmeetings.persistence.beans.basic.xsd.Sessiondata; +import org.apache.openmeetings.persistence.beans.flvrecord.xsd.FlvRecording; +import org.apache.openmeetings.persistence.beans.room.xsd.Room; import org.olat.core.helpers.Settings; import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; @@ -55,42 +66,6 @@ import org.olat.repository.RepositoryManager; import org.olat.repository.model.RepositoryEntryShortImpl; import org.olat.user.DisplayPortraitManager; import org.olat.user.UserDataDeletable; -import org.openmeetings.app.persistence.beans.flvrecord.xsd.FlvRecording; -import org.openmeetings.app.persistence.beans.rooms.xsd.Rooms; -import org.openmeetings.axis.services.AddRoomWithModerationAndRecordingFlags; -import org.openmeetings.axis.services.AddRoomWithModerationAndRecordingFlagsResponse; -import org.openmeetings.axis.services.CloseRoom; -import org.openmeetings.axis.services.CloseRoomResponse; -import org.openmeetings.axis.services.DeleteFlvRecording; -import org.openmeetings.axis.services.DeleteFlvRecordingResponse; -import org.openmeetings.axis.services.DeleteRoom; -import org.openmeetings.axis.services.DeleteRoomResponse; -import org.openmeetings.axis.services.GetFlvRecordingByRoomId; -import org.openmeetings.axis.services.GetFlvRecordingByRoomIdResponse; -import org.openmeetings.axis.services.GetRoomById; -import org.openmeetings.axis.services.GetRoomByIdResponse; -import org.openmeetings.axis.services.GetRoomWithClientObjectsById; -import org.openmeetings.axis.services.GetRoomWithClientObjectsByIdResponse; -import org.openmeetings.axis.services.GetRoomsWithCurrentUsersByListAndType; -import org.openmeetings.axis.services.GetRoomsWithCurrentUsersByListAndTypeResponse; -import org.openmeetings.axis.services.GetSession; -import org.openmeetings.axis.services.GetSessionResponse; -import org.openmeetings.axis.services.KickUser; -import org.openmeetings.axis.services.KickUserByPublicSID; -import org.openmeetings.axis.services.KickUserByPublicSIDResponse; -import org.openmeetings.axis.services.KickUserResponse; -import org.openmeetings.axis.services.LoginUser; -import org.openmeetings.axis.services.LoginUserResponse; -import org.openmeetings.axis.services.SetUserObjectAndGenerateRoomHashByURL; -import org.openmeetings.axis.services.SetUserObjectAndGenerateRoomHashByURLAndRecFlag; -import org.openmeetings.axis.services.SetUserObjectAndGenerateRoomHashByURLAndRecFlagResponse; -import org.openmeetings.axis.services.SetUserObjectAndGenerateRoomHashByURLResponse; -import org.openmeetings.axis.services.UpdateRoomWithModeration; -import org.openmeetings.axis.services.UpdateRoomWithModerationResponse; -import org.openmeetings.axis.services.xsd.RoomReturn; -import org.openmeetings.axis.services.xsd.RoomUser; -import org.openmeetings.stubs.RoomServiceStub; -import org.openmeetings.stubs.UserServiceStub; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -137,7 +112,7 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel public List<OpenMeetingsRoom> getOpenOLATRooms() { try { String adminSID = adminLogin(); - RoomServiceStub roomWs = getRoomWebService(); + RoomServicePortType roomWs = getRoomWebService(); GetRoomsWithCurrentUsersByListAndType getRooms = new GetRoomsWithCurrentUsersByListAndType(); getRooms.setAsc(true); @@ -150,13 +125,12 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel Map<Long,RoomReturnInfo> realRooms = new HashMap<Long,RoomReturnInfo>(); //get rooms on openmeetings - GetRoomsWithCurrentUsersByListAndTypeResponse getRoomsResponse = roomWs.getRoomsWithCurrentUsersByListAndType(getRooms); - RoomReturn[] roomsRet = getRoomsResponse.get_return(); + List<RoomReturn> roomsRet = roomWs.getRoomsWithCurrentUsersByListAndType(adminSID, 0, 2000, "name", true, getOpenOLATExternalType()); if(roomsRet != null) { for(RoomReturn roomRet:roomsRet) { RoomReturnInfo info = new RoomReturnInfo(); info.setName(roomRet.getName()); - info.setRoomId(roomRet.getRoom_id()); + info.setRoomId(roomRet.getRoomId()); int numOfUsers = 0; if(roomRet.getRoomUser() != null) { for(RoomUser user:roomRet.getRoomUser()) { @@ -166,7 +140,7 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel } } info.setNumOfUsers(numOfUsers); - realRooms.put(new Long(roomRet.getRoom_id()), info); + realRooms.put(new Long(roomRet.getRoomId()), info); } } @@ -244,25 +218,21 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel public String setUserToRoom(Identity identity, long roomId, boolean moderator) throws OpenMeetingsException { try { - UserServiceStub userWs = getUserWebService(); - String adminSessionId = adminLogin(); + UserServicePortType userWs = getUserWebService(); + String sid = adminLogin(); - SetUserObjectAndGenerateRoomHashByURLAndRecFlag userObj = new SetUserObjectAndGenerateRoomHashByURLAndRecFlag(); - userObj.setBecomeModeratorAsInt(moderator ? 1 : 0); - userObj.setEmail(identity.getUser().getProperty(UserConstants.EMAIL, null)); - userObj.setExternalUserId(getOpenOLATUserExternalId(identity)); - userObj.setExternalUserType(getOpenOLATExternalType()); - userObj.setFirstname(identity.getUser().getProperty(UserConstants.FIRSTNAME, null)); - userObj.setLastname(identity.getUser().getProperty(UserConstants.LASTNAME, null)); - userObj.setProfilePictureUrl(getPortraitURL(identity)); - userObj.setRoom_id(roomId); - userObj.setShowAudioVideoTestAsInt(0); - userObj.setSID(adminSessionId); - userObj.setUsername(identity.getName()); - userObj.setAllowRecording(1); + int becomeModeratorAsInt = (moderator ? 1 : 0); + String email = identity.getUser().getProperty(UserConstants.EMAIL, null); + String externalUserId = getOpenOLATUserExternalId(identity); + String externalUserType = getOpenOLATExternalType(); + String firstname = identity.getUser().getProperty(UserConstants.FIRSTNAME, null); + String lastname = identity.getUser().getProperty(UserConstants.LASTNAME, null); + String profilePictureUrl = getPortraitURL(identity); + String username = identity.getName(); - SetUserObjectAndGenerateRoomHashByURLAndRecFlagResponse response = userWs.setUserObjectAndGenerateRoomHashByURLAndRecFlag(userObj); - String hashedUrl = response.get_return(); + String hashedUrl = userWs.setUserObjectAndGenerateRoomHashByURLAndRecFlag(sid, + username, firstname, lastname, profilePictureUrl, email, externalUserId, externalUserType, + roomId, becomeModeratorAsInt, 0, 1); if(hashedUrl.startsWith("-") && hashedUrl.length() < 5) { throw new OpenMeetingsException(parseErrorCode(hashedUrl)); } @@ -308,28 +278,19 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel } @Override - public String setGuestUserToRoom(String firstName, String lastName, long roomId) + public String setGuestUserToRoom(String firstname, String lastname, long roomId) throws OpenMeetingsException { try { - UserServiceStub userWs = getUserWebService(); String adminSessionId = adminLogin(); - String username = UUID.randomUUID().toString().replace("-", ""); - SetUserObjectAndGenerateRoomHashByURL userObj = new SetUserObjectAndGenerateRoomHashByURL(); - userObj.setBecomeModeratorAsInt(0); - userObj.setEmail(""); - userObj.setExternalUserId(getOpenOLATUserExternalId(username)); - userObj.setExternalUserType(getOpenOLATExternalType()); - userObj.setFirstname(firstName); - userObj.setLastname(lastName); - userObj.setProfilePictureUrl(""); - userObj.setRoom_id(roomId); - userObj.setShowAudioVideoTestAsInt(0); - userObj.setSID(adminSessionId); - userObj.setUsername(username); + String email = ""; + String externalUserId = getOpenOLATUserExternalId(username); + String externalUserType = getOpenOLATExternalType(); + String profilePictureUrl = ""; - SetUserObjectAndGenerateRoomHashByURLResponse response = userWs.setUserObjectAndGenerateRoomHashByURL(userObj); - String hashedUrl = response.get_return(); + String hashedUrl = getUserWebService() + .setUserObjectAndGenerateRoomHashByURL(adminSessionId, username, firstname, lastname, + profilePictureUrl, email, externalUserId, externalUserType, roomId, 0, 0); if(hashedUrl.startsWith("-") && hashedUrl.length() < 5) { throw new OpenMeetingsException(parseErrorCode(hashedUrl)); } @@ -382,20 +343,16 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel private OpenMeetingsRoom getRoomById(String sid, OpenMeetingsRoom room, long roomId) throws OpenMeetingsException { try { - RoomServiceStub roomWs = getRoomWebService(); - GetRoomById getRoomById = new GetRoomById(); - getRoomById.setSID(sid); - getRoomById.setRooms_id(roomId); - GetRoomByIdResponse getRoomResponse = roomWs.getRoomById(getRoomById); - Rooms omRoom = getRoomResponse.get_return(); + RoomServicePortType roomWs = getRoomWebService(); + Room omRoom = roomWs.getRoomById(sid, roomId); if(omRoom != null) { room.setComment(omRoom.getComment()); - room.setModerated(omRoom.getIsModeratedRoom()); + room.setModerated(omRoom.isIsModeratedRoom()); room.setName(omRoom.getName()); - room.setRoomId(omRoom.getRooms_id()); + room.setRoomId(omRoom.getRoomsId()); room.setSize(omRoom.getNumberOfPartizipants()); - room.setType(omRoom.getRoomtype().getRoomtypes_id()); - room.setClosed(omRoom.getIsClosed()); + room.setType(omRoom.getRoomtype().getRoomtypesId()); + room.setClosed(omRoom.isIsClosed()); return room; } else { return null; @@ -440,16 +397,10 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel try { String adminSID = adminLogin(); - RoomServiceStub roomWs = getRoomWebService(); - CloseRoom closeRoom = new CloseRoom(); - closeRoom.setRoom_id(room.getRoomId()); - closeRoom.setSID(adminSID); - closeRoom.setStatus(status); + RoomServicePortType roomWs = getRoomWebService(); //OpenMeetings doc: false = close, true = open log.audit("Room state changed (true = close, false = open): " + status); - - CloseRoomResponse closeResponse = roomWs.closeRoom(closeRoom); - responseCode = closeResponse.get_return(); + responseCode = roomWs.closeRoom(adminSID, room.getRoomId(), status); if(responseCode < 0) { throw new OpenMeetingsException(responseCode); } @@ -469,20 +420,15 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel try { String adminSID = adminLogin(); - - RoomServiceStub roomWs = getRoomWebService(); - GetFlvRecordingByRoomId recordingByRoom = new GetFlvRecordingByRoomId(); - recordingByRoom.setRoomId(roomId); - recordingByRoom.setSID(adminSID); - GetFlvRecordingByRoomIdResponse recordingResponse = roomWs.getFlvRecordingByRoomId(recordingByRoom); - FlvRecording[] recordings = recordingResponse.get_return(); + RoomServicePortType roomWs = getRoomWebService(); + List<FlvRecording> recordings = roomWs.getFlvRecordingByRoomId(adminSID, roomId); List<OpenMeetingsRecording> recList = new ArrayList<OpenMeetingsRecording>(); if(recordings != null) { for(FlvRecording recording:recordings) { if(recording != null) { OpenMeetingsRecording rec = new OpenMeetingsRecording(); - rec.setRoomId(recording.getRoom_id()); + rec.setRoomId(recording.getRoomId()); rec.setRecordingId(recording.getFlvRecordingId()); rec.setFilename(recording.getFileName()); rec.setDownloadName(recording.getFileHash()); @@ -528,27 +474,12 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel } try { - String sessionId = adminLogin(); - - RoomServiceStub roomWs = getRoomWebService(); - AddRoomWithModerationAndRecordingFlags omRoom = new AddRoomWithModerationAndRecordingFlags(); - omRoom.setAppointment(false); - omRoom.setAllowRecording(room.isRecordingAllowed()); - omRoom.setAllowUserQuestions(true); - omRoom.setComment(room.getComment()); - omRoom.setDemoTime(0); - omRoom.setExternalRoomType(getOpenOLATExternalType()); - omRoom.setIsDemoRoom(false); - omRoom.setIsModeratedRoom(room.isModerated()); - omRoom.setIspublic(false); - omRoom.setName(room.getName()); - omRoom.setNumberOfPartizipants(room.getSize()); - omRoom.setRoomtypes_id(room.getType()); - omRoom.setSID(sessionId); - omRoom.setWaitForRecording(false); - - AddRoomWithModerationAndRecordingFlagsResponse addRoomResponse = roomWs.addRoomWithModerationAndRecordingFlags(omRoom); - long returned = addRoomResponse.get_return(); + String sid = adminLogin(); + RoomServicePortType roomWs = getRoomWebService(); + long returned = roomWs.addRoomWithModerationAndRecordingFlags(sid, + room.getName(), room.getType(), room.getComment(), room.getSize(), false, false, + false, 0, room.isModerated(), getOpenOLATExternalType(), true, + false, false, room.isRecordingAllowed()); if(returned >= 0) { room.setRoomId(returned); log.audit("Room created"); @@ -579,24 +510,10 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel @Override public OpenMeetingsRoom updateRoom(BusinessGroup group, OLATResourceable ores, String subIdentifier, OpenMeetingsRoom room) { try { - String sessionId = adminLogin(); - - RoomServiceStub roomWs = getRoomWebService(); - UpdateRoomWithModeration omRoom = new UpdateRoomWithModeration(); - omRoom.setAppointment(false); - omRoom.setComment(room.getComment()); - omRoom.setDemoTime(0); - omRoom.setIsDemoRoom(false); - omRoom.setIsModeratedRoom(room.isModerated()); - omRoom.setIspublic(false); - omRoom.setName(room.getName()); - omRoom.setNumberOfPartizipants(room.getSize()); - omRoom.setRoom_id(room.getRoomId()); - omRoom.setRoomtypes_id(room.getType()); - omRoom.setSID(sessionId); - - UpdateRoomWithModerationResponse updateRoomResponse = roomWs.updateRoomWithModeration(omRoom); - long returned = updateRoomResponse.get_return(); + String sid = adminLogin(); + RoomServicePortType roomWs = getRoomWebService(); + long returned = roomWs.updateRoomWithModeration(sid, room.getRoomId(), + room.getName(), room.getType(), room.getComment(), room.getSize(), false, false, false, 0, room.isModerated()); if(returned >= 0) { log.audit("Room updated"); openMeetingsDao.updateReference(group, ores, subIdentifier, room); @@ -613,13 +530,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel public boolean deleteRoom(OpenMeetingsRoom room) { try { String adminSID = adminLogin(); - RoomServiceStub roomWs = getRoomWebService(); - DeleteRoom getRoomCl = new DeleteRoom(); - getRoomCl.setRooms_id(room.getRoomId()); - getRoomCl.setSID(adminSID); - DeleteRoomResponse deleteRoomResponse = roomWs.deleteRoom(getRoomCl); - - long ret = deleteRoomResponse.get_return(); + RoomServicePortType roomWs = getRoomWebService(); + long ret = roomWs.deleteRoom(adminSID, room.getRoomId()); boolean ok = ret > 0; if(ok && room.getReference() != null) { openMeetingsDao.delete(room.getReference()); @@ -635,12 +547,9 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel public boolean deleteRecording (OpenMeetingsRecording recording) { try { String adminSID = adminLogin(); - RoomServiceStub roomWs = getRoomWebService(); - DeleteFlvRecording deleteRecordingCl = new DeleteFlvRecording(); - deleteRecordingCl.setFlvRecordingId(recording.getRecordingId()); - deleteRecordingCl.setSID(adminSID); - DeleteFlvRecordingResponse resp = roomWs.deleteFlvRecording(deleteRecordingCl); - return resp.get_return(); + RoomServicePortType roomWs = getRoomWebService(); + boolean resp = roomWs.deleteFlvRecording(adminSID, recording.getRecordingId()); + return resp; } catch (Exception e) { log.error("", e); return false; @@ -652,15 +561,10 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel throws OpenMeetingsException { try { String adminSID = adminLogin(); - RoomServiceStub roomWs = getRoomWebService(); - GetRoomWithClientObjectsById getRoomCl = new GetRoomWithClientObjectsById(); - getRoomCl.setRooms_id(room.getRoomId()); - getRoomCl.setSID(adminSID); - GetRoomWithClientObjectsByIdResponse getRoomClResponse = roomWs.getRoomWithClientObjectsById(getRoomCl); - - RoomReturn roomClRet = getRoomClResponse.get_return(); + RoomServicePortType roomWs = getRoomWebService(); + RoomReturn roomClRet = roomWs.getRoomWithClientObjectsById(adminSID, room.getRoomId()); if(roomClRet != null) { - RoomUser[] userArr = roomClRet.getRoomUser(); + List<RoomUser> userArr = roomClRet.getRoomUser(); return convert(userArr); } return Collections.emptyList(); @@ -670,7 +574,7 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel } } - private List<OpenMeetingsUser> convert(RoomUser[] clients) { + private List<OpenMeetingsUser> convert(List<RoomUser> clients) { List<OpenMeetingsUser> users = new ArrayList<OpenMeetingsUser>(); if(clients != null) { for(RoomUser client:clients) { @@ -698,12 +602,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel public boolean removeUser(String publicSID) { try { String adminSID = adminLogin(); - UserServiceStub userWs = getUserWebService(); - KickUserByPublicSID kickUser = new KickUserByPublicSID(); - kickUser.setSID(adminSID); - kickUser.setPublicSID(publicSID); - KickUserByPublicSIDResponse kickResponse = userWs.kickUserByPublicSID(kickUser); - return kickResponse.get_return(); + boolean kickResponse = getUserWebService().kickUserByPublicSID(adminSID, publicSID); + return kickResponse; } catch (Exception e) { log.error("", e); return false; @@ -714,12 +614,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel public boolean removeUsersFromRoom(OpenMeetingsRoom room) { try { String adminSID = adminLogin(); - RoomServiceStub roomWs = getRoomWebService(); - KickUser kickUser = new KickUser(); - kickUser.setRoom_id(room.getRoomId()); - kickUser.setSID_Admin(adminSID); - KickUserResponse kickResponse = roomWs.kickUser(kickUser); - return kickResponse.get_return(); + boolean kickResponse = getRoomWebService().kickUser(adminSID, room.getRoomId()); + return kickResponse; } catch (Exception e) { log.error("", e); return false; @@ -728,9 +624,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel private String getSessionID() { try { - GetSession getSession = new GetSession(); - GetSessionResponse getSessionResponse = getUserWebService().getSession(getSession); - String sessionId = getSessionResponse.get_return().getSession_id(); + Sessiondata getSessionResponse = getUserWebService().getSession(); + String sessionId = getSessionResponse.getSessionId(); return sessionId; } catch (Exception e) { log.error("", e); @@ -743,12 +638,9 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel long returnCode = 0; try { String sid = getSessionID(); - LoginUser adminUser = new LoginUser(); - adminUser.setSID(sid); - adminUser.setUsername(openMeetingsModule.getAdminLogin()); - adminUser.setUserpass(openMeetingsModule.getAdminPassword()); - LoginUserResponse loginResponse = getUserWebService().loginUser(adminUser); - returnCode = loginResponse.get_return(); + String username = openMeetingsModule.getAdminLogin(); + String userpass = openMeetingsModule.getAdminPassword(); + returnCode = getUserWebService().loginUser(sid, username, userpass); if(returnCode > 0) { return sid; } @@ -783,20 +675,15 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel throws OpenMeetingsException { long returnCode; try { + UserService ss = new UserService(); + UserServicePortType port = ss.getUserServiceHttpSoap11Endpoint(); String endPoint = cleanUrl(url) + "/services/UserService?wsdl"; - UserServiceStub userWs = new UserServiceStub(endPoint); + ((BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPoint); - GetSession getSession = new GetSession(); - GetSessionResponse getSessionResponse = userWs.getSession(getSession); - String sid = getSessionResponse.get_return().getSession_id(); - - LoginUser adminUser = new LoginUser(); - adminUser.setSID(sid); - adminUser.setUsername(login); - adminUser.setUserpass(password); - LoginUserResponse loginResponse = getUserWebService().loginUser(adminUser); - - returnCode = loginResponse.get_return(); + Sessiondata sessiondata = port.getSession(); + String sid = sessiondata.getSessionId(); + + returnCode = getUserWebService().loginUser(sid, login, password); if(returnCode > 0) { return StringHelper.containsNonWhitespace(sid); } @@ -825,18 +712,22 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel return allOk; } - private final RoomServiceStub getRoomWebService() + private final RoomServicePortType getRoomWebService() throws AxisFault { + RoomService ss = new RoomService(); + RoomServicePortType port = ss.getRoomServiceHttpSoap11Endpoint(); String endPoint = getOpenMeetingsEndPoint() + "RoomService?wsdl"; - RoomServiceStub roomWs = new RoomServiceStub(endPoint); - return roomWs; + ((BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPoint); + return port; } - private final UserServiceStub getUserWebService() + private final UserServicePortType getUserWebService() throws AxisFault { + UserService ss = new UserService(); + UserServicePortType port = ss.getUserServiceHttpSoap11Endpoint(); String endPoint = getOpenMeetingsEndPoint() + "UserService?wsdl"; - UserServiceStub roomWs = new UserServiceStub(endPoint); - return roomWs; + ((BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPoint); + return port; } private String getOpenMeetingsEndPoint() {