You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by "seba.wagner@gmail.com" <se...@gmail.com> on 2013/03/29 22:44:01 UTC

Re: login using SOAP API whiteboard don't work.

It is likely that the error has nothing todo with the SOAP login.
Does the document upload work if you login to a room without SOAP ?

Sebastian


2013/3/29 ron sun <su...@live.com>

> I'm not sure whether I said my problem clearly. So I try to make it clear
> in
> this reply.
>
> I am using openmeetings_2_0. I have written a Java client to use SOAP api.
> My intent is to automatically log the user in a specific room. My Java code
> performs follwoing steps:
> 1. getSession
> 2. loginUser
> 3. SetUserObjectAndGenerateRoomHash
> 4.http://localhost:5080/openmeetings/
>
> main.as3.swf11.swf?secureHash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&language=11&lz
> proxied=solo&lc_SID=139032
>
> Step 3 return the secureHash which is used in step 4. The user can login
> the
> room, and both voice and video work fine, but the whiteboard cannot work.
> HTTP-ERROR:500 when load a pdf to whiteboard. Audience cannot see share doc
> on whiteboard which create in  http://localhost:5080/openmeetingsentrance .
>
> I see some bloges about this, but none works.
>
> I hope people see this letter help me.
>
> Thanks in advance.
>
>
> And all codes are in my first letter.
> com.ron.openmeetings.util. meetingManager return the secureHash URL.
> Calling Com.ron.openmeetings.servlet.Room can automatically log the user in
> a specific room.
>
>
> -----Original Message-----
> From: ron sun [mailto:sunron@live.com]
> Sent: 2013年3月28日 17:22
> To: dev@openmeetings.apache.org
> Subject: login using SOAP API whiteboard don't work.
>
> Hi all,
> I'm using openmeetnis 2.0.
> I want my client directly enter the conference room by using SOAP API.
>
>
>
> /**********************************utility**********************************
> /
> package com.ron.openmeetings.util;
>
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> import org.apache.openmeetings.axis.services.UserServiceStub;
> import org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
> import
> org.apache.openmeetings.axis.services.UserServiceStub.GetSessionResponse;
> import org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
> import
> org.apache.openmeetings.axis.services.UserServiceStub.LoginUserResponse;
> import
>
> org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAndGenera
> teRoomHash;
> import
>
> org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAndGenera
> teRoomHashResponse;
>
> public class meetingManager{
>
>         public static String generateSecureLoginUrl(String userName, int
> roomId){
>                         try {
>                                 //generate sessionId
>                                 UserServiceStub userServiceStub = new
> UserServiceStub("
> http://192.168.202.14:5080/openmeetings/services/UserServic
> e");
>                                 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("pass");
>                                 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(userObjectAndGenerateRoomHa
> sh);
>                                 String roomHash =
> userObjectAndGenerateRoomHashResponse.get_return();
> //                              log.debug("Meeting secure roomHash:" +
> roomHash);
>                                 String ssoUrl =
> "http://192.168.202.14:5080/openmeetings/main.as3.swf11.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);
>                         }
>                         return null;
>         }
>
> }
>
>
> /************************servlet*********************************/
> package com.ron.openmeetings.servlet;
>
> import java.io.IOException;
> import javax.servlet.ServletConfig;
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> import com.ron.openmeetings.util.meetingManager;
>
> /**
>  * Servlet implementation class Room
>  */
> public class Room extends HttpServlet {
>         private static final long serialVersionUID = 1L;
>
>     /**
>      * @see HttpServlet#HttpServlet()
>      */
>     public Room() {
>         super();
>         // TODO Auto-generated constructor stub
>     }
>
>         /**
>          * @see Servlet#init(ServletConfig)
>          */
>         public void init(ServletConfig config) throws ServletException {
>                 // TODO Auto-generated method stub
>         }
>
>         /**
>          * @see Servlet#destroy()
>          */
>         public void destroy() {
>                 // TODO Auto-generated method stub
>                 super.destroy();
>         }
>
>         /**
>          * @see HttpServlet#doGet(HttpServletRequest request,
> HttpServletResponse response)
>          */
>         protected void doGet(HttpServletRequest request,
> HttpServletResponse
> response) throws ServletException, IOException {
>                 // TODO Auto-generated method stub
>                 doPost(request,response);
>         }
>
>         /**
>          * @see HttpServlet#doPost(HttpServletRequest request,
> HttpServletResponse response)
>          */
>         protected void doPost(HttpServletRequest request,
> HttpServletResponse response) throws ServletException, IOException {
>                 // TODO Auto-generated method stub
>                 try{
>                         room(request, response);
>                 }catch(Exception e){
>
>                 }
>
>         }
>
>
> //      @RequestMapping(value = "/room/admin")
>         public void room(HttpServletRequest request, HttpServletResponse
> response) throws Exception {
> //              String roomId = request.getParameter("roomId");
>
> //              String roomSecureLoginUrl =
> meetingManager.generateSecureLoginUrl("renjiao", Integer.valueOf(roomId));
>                 String roomSecureLoginUrl =
> meetingManager.generateSecureLoginUrl("renjiao", 6);
>                 response.sendRedirect(roomSecureLoginUrl);
>         }
>
> }
>
>
> Everything goes correctly except whiteboad don't work.
>
> I search on the internet and find it's a bug.
> On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx,
> On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
> parent view was already destroyed
>
> Someone suggests modify method reconnectSuccess, like this:
> <method name="reconnectSuccess" args="isInterview">
>     if ($debug) Debug.write("Send reconnectSuccess to
> ",canvas.rtmp_lc_name);
>     canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "reconnectSuccess",
> [canvas.thishib.src, canvas.publicSID, hib.userobject, isInterview]);
>     //add secure remote login
>     if(canvas.secureRemoteUserLogin){
>         if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");
>         this.parent.as3ConnectionSuccess();//using SOAP API login, miss
> this.
>     }
> </method>
>
> It doesn't work and cause other error. How to fix it?
>
>
> Thanks a lot!
>
> Ron Sun.
>
>
>


-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

RE: login using SOAP API whiteboard don't work.

Posted by Ron Sun <su...@live.com>.
The openmeetings server and SOAP login access server both run on the same host, and soap client is on the same host. I login to a room without SOAP from another host.
It's in my test enviroment.
I change localhost to ip address, nothing changes.

Ron


-----Original Message-----
From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: 2013年3月30日 11:37
To: dev
Subject: Re: login using SOAP API whiteboard don't work.

When you integrate your application into some other host, of course you can't run OpenMeetings via "localhost".
I mean the SOAP interface might be reachable from the SOAP WebService via "localhost", but for any other user this URL will just point to his own host/computer/device.
So use the correct URL to load the SWF into the client, the one that you would use to externally access OpenMeetings.

Sebastian


2013/3/30 Alexei Fedotov <al...@gmail.com>

> The last problem indicates you have 5080 port closed. You can simply 
> change the configuration to avoid that.
> 30.03.2013 6:33 пользователь "Ron Sun" <su...@live.com> написал:
>
> > Thanks very much first.
> >
> > The document upload works if I login to a room without SOAP.  I mean 
> > document like pdf or jpg works,  but ppt seems have some problem. It 
> > does not matter, right?
> >
> > If there are already exist any files in the room on whiteboard, SOAP 
> > clients join room and get an error:
> >
> > onerror SWF!! canvas.mediaerrortimeout exceeded for
> >
> >
> http://localhost:5080/openmeetings/DownloadHandler?fileName=14f8b355ce
> b630a0bc3f26f4d9d54a2b%2Eswf&moduleName=videoconf1&parentPath=%2F14f8b
> 355ceb630a0bc3f26f4d9d54a2b%2F&room_id=files&sid=20255704177e883fc3b07
> 27b0357ef39
> >
> > where is the problem?
> >
> >
> >
> >
> > -----Original Message-----
> > From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> > Sent: 2013年3月30日 5:44
> > To: dev
> > Subject: Re: login using SOAP API whiteboard don't work.
> >
> > It is likely that the error has nothing todo with the SOAP login.
> > Does the document upload work if you login to a room without SOAP ?
> >
> > Sebastian
> >
> >
> > 2013/3/29 ron sun <su...@live.com>
> >
> > > I'm not sure whether I said my problem clearly. So I try to make 
> > > it clear in this reply.
> > >
> > > I am using openmeetings_2_0. I have written a Java client to use 
> > > SOAP
> > api.
> > > My intent is to automatically log the user in a specific room. My 
> > > Java code performs follwoing steps:
> > > 1. getSession
> > > 2. loginUser
> > > 3. SetUserObjectAndGenerateRoomHash 
> > > 4.http://localhost:5080/openmeetings/
> > >
> > > main.as3.swf11.swf?secureHash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lang
> > > uage
> > > =11&lz
> > > proxied=solo&lc_SID=139032
> > >
> > > Step 3 return the secureHash which is used in step 4. The user can 
> > > login the room, and both voice and video work fine, but the 
> > > whiteboard cannot work.
> > > HTTP-ERROR:500 when load a pdf to whiteboard. Audience cannot see 
> > > share doc on whiteboard which create in
> > http://localhost:5080/openmeetingsentrance .
> > >
> > > I see some bloges about this, but none works.
> > >
> > > I hope people see this letter help me.
> > >
> > > Thanks in advance.
> > >
> > >
> > > And all codes are in my first letter.
> > > com.ron.openmeetings.util. meetingManager return the secureHash URL.
> > > Calling Com.ron.openmeetings.servlet.Room can automatically log 
> > > the user in a specific room.
> > >
> > >
> > > -----Original Message-----
> > > From: ron sun [mailto:sunron@live.com]
> > > Sent: 2013年3月28日 17:22
> > > To: dev@openmeetings.apache.org
> > > Subject: login using SOAP API whiteboard don't work.
> > >
> > > Hi all,
> > > I'm using openmeetnis 2.0.
> > > I want my client directly enter the conference room by using SOAP API.
> > >
> > >
> > >
> > > /**********************************utility************************
> > > ****
> > > ******
> > > /
> > > package com.ron.openmeetings.util;
> > >
> > > import javax.servlet.http.HttpServletRequest;
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import org.apache.openmeetings.axis.services.UserServiceStub;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.GetSessionRe
> > > spon
> > > se; import
> > > org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.LoginUserRes
> > > pons
> > > e;
> > > import
> > >
> > > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjec
> > > tAnd
> > > Genera
> > > teRoomHash;
> > > import
> > >
> > > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjec
> > > tAnd
> > > Genera
> > > teRoomHashResponse;
> > >
> > > public class meetingManager{
> > >
> > >         public static String generateSecureLoginUrl(String 
> > > userName, int roomId){
> > >                         try {
> > >                                 //generate sessionId
> > >                                 UserServiceStub userServiceStub = 
> > > new UserServiceStub("
> > > http://192.168.202.14:5080/openmeetings/services/UserServic
> > > e");
> > >                                 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("pass");
> > >                                 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(userObjectAndGene
> > > rate
> > > RoomHa
> > > sh);
> > >                                 String roomHash = 
> > > userObjectAndGenerateRoomHashResponse.get_return();
> > > //                              log.debug("Meeting secure roomHash:" +
> > > roomHash);
> > >                                 String ssoUrl = "
> http://192.168.202.14:5080/openmeetings/main.as3.swf11.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);
> > >                         }
> > >                         return null;
> > >         }
> > >
> > > }
> > >
> > >
> > > /************************servlet*********************************/
> > > package com.ron.openmeetings.servlet;
> > >
> > > import java.io.IOException;
> > > import javax.servlet.ServletConfig; import 
> > > javax.servlet.ServletException; import 
> > > javax.servlet.http.HttpServlet; import 
> > > javax.servlet.http.HttpServletRequest;
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import com.ron.openmeetings.util.meetingManager;
> > >
> > > /**
> > >  * Servlet implementation class Room  */ public class Room extends 
> > > HttpServlet {
> > >         private static final long serialVersionUID = 1L;
> > >
> > >     /**
> > >      * @see HttpServlet#HttpServlet()
> > >      */
> > >     public Room() {
> > >         super();
> > >         // TODO Auto-generated constructor stub
> > >     }
> > >
> > >         /**
> > >          * @see Servlet#init(ServletConfig)
> > >          */
> > >         public void init(ServletConfig config) throws 
> > > ServletException
> {
> > >                 // TODO Auto-generated method stub
> > >         }
> > >
> > >         /**
> > >          * @see Servlet#destroy()
> > >          */
> > >         public void destroy() {
> > >                 // TODO Auto-generated method stub
> > >                 super.destroy();
> > >         }
> > >
> > >         /**
> > >          * @see HttpServlet#doGet(HttpServletRequest request, 
> > > HttpServletResponse response)
> > >          */
> > >         protected void doGet(HttpServletRequest request, 
> > > HttpServletResponse
> > > response) throws ServletException, IOException {
> > >                 // TODO Auto-generated method stub
> > >                 doPost(request,response);
> > >         }
> > >
> > >         /**
> > >          * @see HttpServlet#doPost(HttpServletRequest request, 
> > > HttpServletResponse response)
> > >          */
> > >         protected void doPost(HttpServletRequest request, 
> > > HttpServletResponse response) throws ServletException, IOException {
> > >                 // TODO Auto-generated method stub
> > >                 try{
> > >                         room(request, response);
> > >                 }catch(Exception e){
> > >
> > >                 }
> > >
> > >         }
> > >
> > >
> > > //      @RequestMapping(value = "/room/admin")
> > >         public void room(HttpServletRequest request, 
> > > HttpServletResponse
> > > response) throws Exception {
> > > //              String roomId = request.getParameter("roomId");
> > >
> > > //              String roomSecureLoginUrl =
> > > meetingManager.generateSecureLoginUrl("renjiao",
> > Integer.valueOf(roomId));
> > >                 String roomSecureLoginUrl = 
> > > meetingManager.generateSecureLoginUrl("renjiao", 6);
> > >                 response.sendRedirect(roomSecureLoginUrl);
> > >         }
> > >
> > > }
> > >
> > >
> > > Everything goes correctly except whiteboad don't work.
> > >
> > > I search on the internet and find it's a bug.
> > > On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx,
> > > On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
> > > parent view was already destroyed
> > >
> > > Someone suggests modify method reconnectSuccess, like this:
> > > <method name="reconnectSuccess" args="isInterview">
> > >     if ($debug) Debug.write("Send reconnectSuccess to 
> > > ",canvas.rtmp_lc_name);
> > >     canvas.sendViaLocalConnection(canvas.rtmp_lc_name,
> > > "reconnectSuccess", [canvas.thishib.src, canvas.publicSID,
> > hib.userobject, isInterview]);
> > >     //add secure remote login
> > >     if(canvas.secureRemoteUserLogin){
> > >         if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");
> > >         this.parent.as3ConnectionSuccess();//using SOAP API login, 
> > > miss this.
> > >     }
> > > </method>
> > >
> > > It doesn't work and cause other error. How to fix it?
> > >
> > >
> > > Thanks a lot!
> > >
> > > Ron Sun.
> > >
> > >
> > >
> >
> >
> > --
> > Sebastian Wagner
> > https://twitter.com/#!/dead_lock
> > http://www.webbase-design.de
> > http://www.wagner-sebastian.com
> > seba.wagner@gmail.com
> >
> >
>



--
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com


Re: login using SOAP API whiteboard don't work.

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
When you integrate your application into some other host, of course you
can't run OpenMeetings via "localhost".
I mean the SOAP interface might be reachable from the SOAP WebService via
"localhost", but for any other user this URL will just point to his own
host/computer/device.
So use the correct URL to load the SWF into the client, the one that you
would use to externally access OpenMeetings.

Sebastian


2013/3/30 Alexei Fedotov <al...@gmail.com>

> The last problem indicates you have 5080 port closed. You can simply change
> the configuration to avoid that.
> 30.03.2013 6:33 пользователь "Ron Sun" <su...@live.com> написал:
>
> > Thanks very much first.
> >
> > The document upload works if I login to a room without SOAP.  I mean
> > document like pdf or jpg works,  but ppt seems have some problem. It does
> > not matter, right?
> >
> > If there are already exist any files in the room on whiteboard, SOAP
> > clients join room and get an error:
> >
> > onerror SWF!! canvas.mediaerrortimeout exceeded for
> >
> >
> http://localhost:5080/openmeetings/DownloadHandler?fileName=14f8b355ceb630a0bc3f26f4d9d54a2b%2Eswf&moduleName=videoconf1&parentPath=%2F14f8b355ceb630a0bc3f26f4d9d54a2b%2F&room_id=files&sid=20255704177e883fc3b0727b0357ef39
> >
> > where is the problem?
> >
> >
> >
> >
> > -----Original Message-----
> > From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> > Sent: 2013年3月30日 5:44
> > To: dev
> > Subject: Re: login using SOAP API whiteboard don't work.
> >
> > It is likely that the error has nothing todo with the SOAP login.
> > Does the document upload work if you login to a room without SOAP ?
> >
> > Sebastian
> >
> >
> > 2013/3/29 ron sun <su...@live.com>
> >
> > > I'm not sure whether I said my problem clearly. So I try to make it
> > > clear in this reply.
> > >
> > > I am using openmeetings_2_0. I have written a Java client to use SOAP
> > api.
> > > My intent is to automatically log the user in a specific room. My Java
> > > code performs follwoing steps:
> > > 1. getSession
> > > 2. loginUser
> > > 3. SetUserObjectAndGenerateRoomHash
> > > 4.http://localhost:5080/openmeetings/
> > >
> > > main.as3.swf11.swf?secureHash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&language
> > > =11&lz
> > > proxied=solo&lc_SID=139032
> > >
> > > Step 3 return the secureHash which is used in step 4. The user can
> > > login the room, and both voice and video work fine, but the whiteboard
> > > cannot work.
> > > HTTP-ERROR:500 when load a pdf to whiteboard. Audience cannot see
> > > share doc on whiteboard which create in
> > http://localhost:5080/openmeetingsentrance .
> > >
> > > I see some bloges about this, but none works.
> > >
> > > I hope people see this letter help me.
> > >
> > > Thanks in advance.
> > >
> > >
> > > And all codes are in my first letter.
> > > com.ron.openmeetings.util. meetingManager return the secureHash URL.
> > > Calling Com.ron.openmeetings.servlet.Room can automatically log the
> > > user in a specific room.
> > >
> > >
> > > -----Original Message-----
> > > From: ron sun [mailto:sunron@live.com]
> > > Sent: 2013年3月28日 17:22
> > > To: dev@openmeetings.apache.org
> > > Subject: login using SOAP API whiteboard don't work.
> > >
> > > Hi all,
> > > I'm using openmeetnis 2.0.
> > > I want my client directly enter the conference room by using SOAP API.
> > >
> > >
> > >
> > > /**********************************utility****************************
> > > ******
> > > /
> > > package com.ron.openmeetings.util;
> > >
> > > import javax.servlet.http.HttpServletRequest;
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import org.apache.openmeetings.axis.services.UserServiceStub;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.GetSessionRespon
> > > se; import
> > > org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.LoginUserRespons
> > > e;
> > > import
> > >
> > > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAnd
> > > Genera
> > > teRoomHash;
> > > import
> > >
> > > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAnd
> > > Genera
> > > teRoomHashResponse;
> > >
> > > public class meetingManager{
> > >
> > >         public static String generateSecureLoginUrl(String userName,
> > > int roomId){
> > >                         try {
> > >                                 //generate sessionId
> > >                                 UserServiceStub userServiceStub = new
> > > UserServiceStub("
> > > http://192.168.202.14:5080/openmeetings/services/UserServic
> > > e");
> > >                                 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("pass");
> > >                                 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(userObjectAndGenerate
> > > RoomHa
> > > sh);
> > >                                 String roomHash =
> > > userObjectAndGenerateRoomHashResponse.get_return();
> > > //                              log.debug("Meeting secure roomHash:" +
> > > roomHash);
> > >                                 String ssoUrl =
> > > "
> http://192.168.202.14:5080/openmeetings/main.as3.swf11.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);
> > >                         }
> > >                         return null;
> > >         }
> > >
> > > }
> > >
> > >
> > > /************************servlet*********************************/
> > > package com.ron.openmeetings.servlet;
> > >
> > > import java.io.IOException;
> > > import javax.servlet.ServletConfig;
> > > import javax.servlet.ServletException; import
> > > javax.servlet.http.HttpServlet; import
> > > javax.servlet.http.HttpServletRequest;
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import com.ron.openmeetings.util.meetingManager;
> > >
> > > /**
> > >  * Servlet implementation class Room
> > >  */
> > > public class Room extends HttpServlet {
> > >         private static final long serialVersionUID = 1L;
> > >
> > >     /**
> > >      * @see HttpServlet#HttpServlet()
> > >      */
> > >     public Room() {
> > >         super();
> > >         // TODO Auto-generated constructor stub
> > >     }
> > >
> > >         /**
> > >          * @see Servlet#init(ServletConfig)
> > >          */
> > >         public void init(ServletConfig config) throws ServletException
> {
> > >                 // TODO Auto-generated method stub
> > >         }
> > >
> > >         /**
> > >          * @see Servlet#destroy()
> > >          */
> > >         public void destroy() {
> > >                 // TODO Auto-generated method stub
> > >                 super.destroy();
> > >         }
> > >
> > >         /**
> > >          * @see HttpServlet#doGet(HttpServletRequest request,
> > > HttpServletResponse response)
> > >          */
> > >         protected void doGet(HttpServletRequest request,
> > > HttpServletResponse
> > > response) throws ServletException, IOException {
> > >                 // TODO Auto-generated method stub
> > >                 doPost(request,response);
> > >         }
> > >
> > >         /**
> > >          * @see HttpServlet#doPost(HttpServletRequest request,
> > > HttpServletResponse response)
> > >          */
> > >         protected void doPost(HttpServletRequest request,
> > > HttpServletResponse response) throws ServletException, IOException {
> > >                 // TODO Auto-generated method stub
> > >                 try{
> > >                         room(request, response);
> > >                 }catch(Exception e){
> > >
> > >                 }
> > >
> > >         }
> > >
> > >
> > > //      @RequestMapping(value = "/room/admin")
> > >         public void room(HttpServletRequest request,
> > > HttpServletResponse
> > > response) throws Exception {
> > > //              String roomId = request.getParameter("roomId");
> > >
> > > //              String roomSecureLoginUrl =
> > > meetingManager.generateSecureLoginUrl("renjiao",
> > Integer.valueOf(roomId));
> > >                 String roomSecureLoginUrl =
> > > meetingManager.generateSecureLoginUrl("renjiao", 6);
> > >                 response.sendRedirect(roomSecureLoginUrl);
> > >         }
> > >
> > > }
> > >
> > >
> > > Everything goes correctly except whiteboad don't work.
> > >
> > > I search on the internet and find it's a bug.
> > > On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx,
> > > On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
> > > parent view was already destroyed
> > >
> > > Someone suggests modify method reconnectSuccess, like this:
> > > <method name="reconnectSuccess" args="isInterview">
> > >     if ($debug) Debug.write("Send reconnectSuccess to
> > > ",canvas.rtmp_lc_name);
> > >     canvas.sendViaLocalConnection(canvas.rtmp_lc_name,
> > > "reconnectSuccess", [canvas.thishib.src, canvas.publicSID,
> > hib.userobject, isInterview]);
> > >     //add secure remote login
> > >     if(canvas.secureRemoteUserLogin){
> > >         if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");
> > >         this.parent.as3ConnectionSuccess();//using SOAP API login,
> > > miss this.
> > >     }
> > > </method>
> > >
> > > It doesn't work and cause other error. How to fix it?
> > >
> > >
> > > Thanks a lot!
> > >
> > > Ron Sun.
> > >
> > >
> > >
> >
> >
> > --
> > Sebastian Wagner
> > https://twitter.com/#!/dead_lock
> > http://www.webbase-design.de
> > http://www.wagner-sebastian.com
> > seba.wagner@gmail.com
> >
> >
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

RE: login using SOAP API whiteboard don't work.

Posted by Ron Sun <su...@live.com>.
Thanks for your reply.

When upload a document to whiteboard, jump HTTP ERROR:500 after upload finished.

Error can read on console. That is below:

DEBUG 03-30 16:02:45.566 AbstractUploadController.java 14471244 58 org.apache.openmeetings.servlet.outputhandler.AbstractUploadController [http-bio-0.0.0.0-5080-exec-1] - Starting validate
DEBUG 03-30 16:02:45.567 AbstractUploadController.java 14471245 65 org.apache.openmeetings.servlet.outputhandler.AbstractUploadController [http-bio-0.0.0.0-5080-exec-1] - sid: 524b18e8ff56923286c6aefeb6cd646a
DEBUG 03-30 16:02:45.588 AbstractUploadController.java 14471266 69 org.apache.openmeetings.servlet.outputhandler.AbstractUploadController [http-bio-0.0.0.0-5080-exec-1] - userId = 0, userLevel = -1
Mar 30, 2013 4:02:45 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [spring-mvc] in context with path [/openmeetings] threw exception [Insufficient permissions -1] with root cause
javax.servlet.ServletException: Insufficient permissions -1
	at org.apache.openmeetings.servlet.outputhandler.AbstractUploadController.validate(AbstractUploadController.java:74)
	at org.apache.openmeetings.servlet.outputhandler.UploadController.handleFileUpload(UploadController.java:77)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:77)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
[ERROR] [http-bio-0.0.0.0-5080-exec-1] org.apache.catalina.core.ContainerBase.[red5Engine].[0.0.0.0].[/openmeetings].[spring-mvc] - Servlet.service() for servlet [spring-mvc] in context with path [/openmeetings] threw exception [Insufficient permissions -1] with root cause
javax.servlet.ServletException: Insufficient permissions -1
	at org.apache.openmeetings.servlet.outputhandler.AbstractUploadController.validate(AbstractUploadController.java:74) ~[openmeetings-2.1.0-SNAPSHOT.jar:na]
	at org.apache.openmeetings.servlet.outputhandler.UploadController.handleFileUpload(UploadController.java:77) ~[openmeetings-2.1.0-SNAPSHOT.jar:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_38]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_38]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_38]
	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_38]
	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) ~[org.springframework.web.servlet-jar-3.1.1.RELEASE.jar:3.1.1.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:77) ~[red5.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) ~[tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) [tomcat-embed-core-jar-7.0.34.jar:7.0.34]
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_38]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_38]
	at java.lang.Thread.run(Thread.java:662) [na:1.6.0_38]

-----Original Message-----
From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: 2013年3月30日 11:37
To: dev
Subject: Re: login using SOAP API whiteboard don't work.

When you integrate your application into some other host, of course you can't run OpenMeetings via "localhost".
I mean the SOAP interface might be reachable from the SOAP WebService via "localhost", but for any other user this URL will just point to his own host/computer/device.
So use the correct URL to load the SWF into the client, the one that you would use to externally access OpenMeetings.

Sebastian


2013/3/30 Alexei Fedotov <al...@gmail.com>

> The last problem indicates you have 5080 port closed. You can simply 
> change the configuration to avoid that.
> 30.03.2013 6:33 пользователь "Ron Sun" <su...@live.com> написал:
>
> > Thanks very much first.
> >
> > The document upload works if I login to a room without SOAP.  I mean 
> > document like pdf or jpg works,  but ppt seems have some problem. It 
> > does not matter, right?
> >
> > If there are already exist any files in the room on whiteboard, SOAP 
> > clients join room and get an error:
> >
> > onerror SWF!! canvas.mediaerrortimeout exceeded for
> >
> >
> http://localhost:5080/openmeetings/DownloadHandler?fileName=14f8b355ce
> b630a0bc3f26f4d9d54a2b%2Eswf&moduleName=videoconf1&parentPath=%2F14f8b
> 355ceb630a0bc3f26f4d9d54a2b%2F&room_id=files&sid=20255704177e883fc3b07
> 27b0357ef39
> >
> > where is the problem?
> >
> >
> >
> >
> > -----Original Message-----
> > From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> > Sent: 2013年3月30日 5:44
> > To: dev
> > Subject: Re: login using SOAP API whiteboard don't work.
> >
> > It is likely that the error has nothing todo with the SOAP login.
> > Does the document upload work if you login to a room without SOAP ?
> >
> > Sebastian
> >
> >
> > 2013/3/29 ron sun <su...@live.com>
> >
> > > I'm not sure whether I said my problem clearly. So I try to make 
> > > it clear in this reply.
> > >
> > > I am using openmeetings_2_0. I have written a Java client to use 
> > > SOAP
> > api.
> > > My intent is to automatically log the user in a specific room. My 
> > > Java code performs follwoing steps:
> > > 1. getSession
> > > 2. loginUser
> > > 3. SetUserObjectAndGenerateRoomHash 
> > > 4.http://localhost:5080/openmeetings/
> > >
> > > main.as3.swf11.swf?secureHash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lang
> > > uage
> > > =11&lz
> > > proxied=solo&lc_SID=139032
> > >
> > > Step 3 return the secureHash which is used in step 4. The user can 
> > > login the room, and both voice and video work fine, but the 
> > > whiteboard cannot work.
> > > HTTP-ERROR:500 when load a pdf to whiteboard. Audience cannot see 
> > > share doc on whiteboard which create in
> > http://localhost:5080/openmeetingsentrance .
> > >
> > > I see some bloges about this, but none works.
> > >
> > > I hope people see this letter help me.
> > >
> > > Thanks in advance.
> > >
> > >
> > > And all codes are in my first letter.
> > > com.ron.openmeetings.util. meetingManager return the secureHash URL.
> > > Calling Com.ron.openmeetings.servlet.Room can automatically log 
> > > the user in a specific room.
> > >
> > >
> > > -----Original Message-----
> > > From: ron sun [mailto:sunron@live.com]
> > > Sent: 2013年3月28日 17:22
> > > To: dev@openmeetings.apache.org
> > > Subject: login using SOAP API whiteboard don't work.
> > >
> > > Hi all,
> > > I'm using openmeetnis 2.0.
> > > I want my client directly enter the conference room by using SOAP API.
> > >
> > >
> > >
> > > /**********************************utility************************
> > > ****
> > > ******
> > > /
> > > package com.ron.openmeetings.util;
> > >
> > > import javax.servlet.http.HttpServletRequest;
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import org.apache.openmeetings.axis.services.UserServiceStub;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.GetSessionRe
> > > spon
> > > se; import
> > > org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
> > > import
> > > org.apache.openmeetings.axis.services.UserServiceStub.LoginUserRes
> > > pons
> > > e;
> > > import
> > >
> > > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjec
> > > tAnd
> > > Genera
> > > teRoomHash;
> > > import
> > >
> > > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjec
> > > tAnd
> > > Genera
> > > teRoomHashResponse;
> > >
> > > public class meetingManager{
> > >
> > >         public static String generateSecureLoginUrl(String 
> > > userName, int roomId){
> > >                         try {
> > >                                 //generate sessionId
> > >                                 UserServiceStub userServiceStub = 
> > > new UserServiceStub("
> > > http://192.168.202.14:5080/openmeetings/services/UserServic
> > > e");
> > >                                 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("pass");
> > >                                 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(userObjectAndGene
> > > rate
> > > RoomHa
> > > sh);
> > >                                 String roomHash = 
> > > userObjectAndGenerateRoomHashResponse.get_return();
> > > //                              log.debug("Meeting secure roomHash:" +
> > > roomHash);
> > >                                 String ssoUrl = "
> http://192.168.202.14:5080/openmeetings/main.as3.swf11.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);
> > >                         }
> > >                         return null;
> > >         }
> > >
> > > }
> > >
> > >
> > > /************************servlet*********************************/
> > > package com.ron.openmeetings.servlet;
> > >
> > > import java.io.IOException;
> > > import javax.servlet.ServletConfig; import 
> > > javax.servlet.ServletException; import 
> > > javax.servlet.http.HttpServlet; import 
> > > javax.servlet.http.HttpServletRequest;
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import com.ron.openmeetings.util.meetingManager;
> > >
> > > /**
> > >  * Servlet implementation class Room  */ public class Room extends 
> > > HttpServlet {
> > >         private static final long serialVersionUID = 1L;
> > >
> > >     /**
> > >      * @see HttpServlet#HttpServlet()
> > >      */
> > >     public Room() {
> > >         super();
> > >         // TODO Auto-generated constructor stub
> > >     }
> > >
> > >         /**
> > >          * @see Servlet#init(ServletConfig)
> > >          */
> > >         public void init(ServletConfig config) throws 
> > > ServletException
> {
> > >                 // TODO Auto-generated method stub
> > >         }
> > >
> > >         /**
> > >          * @see Servlet#destroy()
> > >          */
> > >         public void destroy() {
> > >                 // TODO Auto-generated method stub
> > >                 super.destroy();
> > >         }
> > >
> > >         /**
> > >          * @see HttpServlet#doGet(HttpServletRequest request, 
> > > HttpServletResponse response)
> > >          */
> > >         protected void doGet(HttpServletRequest request, 
> > > HttpServletResponse
> > > response) throws ServletException, IOException {
> > >                 // TODO Auto-generated method stub
> > >                 doPost(request,response);
> > >         }
> > >
> > >         /**
> > >          * @see HttpServlet#doPost(HttpServletRequest request, 
> > > HttpServletResponse response)
> > >          */
> > >         protected void doPost(HttpServletRequest request, 
> > > HttpServletResponse response) throws ServletException, IOException {
> > >                 // TODO Auto-generated method stub
> > >                 try{
> > >                         room(request, response);
> > >                 }catch(Exception e){
> > >
> > >                 }
> > >
> > >         }
> > >
> > >
> > > //      @RequestMapping(value = "/room/admin")
> > >         public void room(HttpServletRequest request, 
> > > HttpServletResponse
> > > response) throws Exception {
> > > //              String roomId = request.getParameter("roomId");
> > >
> > > //              String roomSecureLoginUrl =
> > > meetingManager.generateSecureLoginUrl("renjiao",
> > Integer.valueOf(roomId));
> > >                 String roomSecureLoginUrl = 
> > > meetingManager.generateSecureLoginUrl("renjiao", 6);
> > >                 response.sendRedirect(roomSecureLoginUrl);
> > >         }
> > >
> > > }
> > >
> > >
> > > Everything goes correctly except whiteboad don't work.
> > >
> > > I search on the internet and find it's a bug.
> > > On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx,
> > > On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
> > > parent view was already destroyed
> > >
> > > Someone suggests modify method reconnectSuccess, like this:
> > > <method name="reconnectSuccess" args="isInterview">
> > >     if ($debug) Debug.write("Send reconnectSuccess to 
> > > ",canvas.rtmp_lc_name);
> > >     canvas.sendViaLocalConnection(canvas.rtmp_lc_name,
> > > "reconnectSuccess", [canvas.thishib.src, canvas.publicSID,
> > hib.userobject, isInterview]);
> > >     //add secure remote login
> > >     if(canvas.secureRemoteUserLogin){
> > >         if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");
> > >         this.parent.as3ConnectionSuccess();//using SOAP API login, 
> > > miss this.
> > >     }
> > > </method>
> > >
> > > It doesn't work and cause other error. How to fix it?
> > >
> > >
> > > Thanks a lot!
> > >
> > > Ron Sun.
> > >
> > >
> > >
> >
> >
> > --
> > Sebastian Wagner
> > https://twitter.com/#!/dead_lock
> > http://www.webbase-design.de
> > http://www.wagner-sebastian.com
> > seba.wagner@gmail.com
> >
> >
>



--
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com


RE: login using SOAP API whiteboard don't work.

Posted by Alexei Fedotov <al...@gmail.com>.
The last problem indicates you have 5080 port closed. You can simply change
the configuration to avoid that.
30.03.2013 6:33 пользователь "Ron Sun" <su...@live.com> написал:

> Thanks very much first.
>
> The document upload works if I login to a room without SOAP.  I mean
> document like pdf or jpg works,  but ppt seems have some problem. It does
> not matter, right?
>
> If there are already exist any files in the room on whiteboard, SOAP
> clients join room and get an error:
>
> onerror SWF!! canvas.mediaerrortimeout exceeded for
>
> http://localhost:5080/openmeetings/DownloadHandler?fileName=14f8b355ceb630a0bc3f26f4d9d54a2b%2Eswf&moduleName=videoconf1&parentPath=%2F14f8b355ceb630a0bc3f26f4d9d54a2b%2F&room_id=files&sid=20255704177e883fc3b0727b0357ef39
>
> where is the problem?
>
>
>
>
> -----Original Message-----
> From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com]
> Sent: 2013年3月30日 5:44
> To: dev
> Subject: Re: login using SOAP API whiteboard don't work.
>
> It is likely that the error has nothing todo with the SOAP login.
> Does the document upload work if you login to a room without SOAP ?
>
> Sebastian
>
>
> 2013/3/29 ron sun <su...@live.com>
>
> > I'm not sure whether I said my problem clearly. So I try to make it
> > clear in this reply.
> >
> > I am using openmeetings_2_0. I have written a Java client to use SOAP
> api.
> > My intent is to automatically log the user in a specific room. My Java
> > code performs follwoing steps:
> > 1. getSession
> > 2. loginUser
> > 3. SetUserObjectAndGenerateRoomHash
> > 4.http://localhost:5080/openmeetings/
> >
> > main.as3.swf11.swf?secureHash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&language
> > =11&lz
> > proxied=solo&lc_SID=139032
> >
> > Step 3 return the secureHash which is used in step 4. The user can
> > login the room, and both voice and video work fine, but the whiteboard
> > cannot work.
> > HTTP-ERROR:500 when load a pdf to whiteboard. Audience cannot see
> > share doc on whiteboard which create in
> http://localhost:5080/openmeetingsentrance .
> >
> > I see some bloges about this, but none works.
> >
> > I hope people see this letter help me.
> >
> > Thanks in advance.
> >
> >
> > And all codes are in my first letter.
> > com.ron.openmeetings.util. meetingManager return the secureHash URL.
> > Calling Com.ron.openmeetings.servlet.Room can automatically log the
> > user in a specific room.
> >
> >
> > -----Original Message-----
> > From: ron sun [mailto:sunron@live.com]
> > Sent: 2013年3月28日 17:22
> > To: dev@openmeetings.apache.org
> > Subject: login using SOAP API whiteboard don't work.
> >
> > Hi all,
> > I'm using openmeetnis 2.0.
> > I want my client directly enter the conference room by using SOAP API.
> >
> >
> >
> > /**********************************utility****************************
> > ******
> > /
> > package com.ron.openmeetings.util;
> >
> > import javax.servlet.http.HttpServletRequest;
> > import javax.servlet.http.HttpServletResponse;
> >
> > import org.apache.openmeetings.axis.services.UserServiceStub;
> > import
> > org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
> > import
> > org.apache.openmeetings.axis.services.UserServiceStub.GetSessionRespon
> > se; import
> > org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
> > import
> > org.apache.openmeetings.axis.services.UserServiceStub.LoginUserRespons
> > e;
> > import
> >
> > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAnd
> > Genera
> > teRoomHash;
> > import
> >
> > org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAnd
> > Genera
> > teRoomHashResponse;
> >
> > public class meetingManager{
> >
> >         public static String generateSecureLoginUrl(String userName,
> > int roomId){
> >                         try {
> >                                 //generate sessionId
> >                                 UserServiceStub userServiceStub = new
> > UserServiceStub("
> > http://192.168.202.14:5080/openmeetings/services/UserServic
> > e");
> >                                 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("pass");
> >                                 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(userObjectAndGenerate
> > RoomHa
> > sh);
> >                                 String roomHash =
> > userObjectAndGenerateRoomHashResponse.get_return();
> > //                              log.debug("Meeting secure roomHash:" +
> > roomHash);
> >                                 String ssoUrl =
> > "http://192.168.202.14:5080/openmeetings/main.as3.swf11.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);
> >                         }
> >                         return null;
> >         }
> >
> > }
> >
> >
> > /************************servlet*********************************/
> > package com.ron.openmeetings.servlet;
> >
> > import java.io.IOException;
> > import javax.servlet.ServletConfig;
> > import javax.servlet.ServletException; import
> > javax.servlet.http.HttpServlet; import
> > javax.servlet.http.HttpServletRequest;
> > import javax.servlet.http.HttpServletResponse;
> >
> > import com.ron.openmeetings.util.meetingManager;
> >
> > /**
> >  * Servlet implementation class Room
> >  */
> > public class Room extends HttpServlet {
> >         private static final long serialVersionUID = 1L;
> >
> >     /**
> >      * @see HttpServlet#HttpServlet()
> >      */
> >     public Room() {
> >         super();
> >         // TODO Auto-generated constructor stub
> >     }
> >
> >         /**
> >          * @see Servlet#init(ServletConfig)
> >          */
> >         public void init(ServletConfig config) throws ServletException {
> >                 // TODO Auto-generated method stub
> >         }
> >
> >         /**
> >          * @see Servlet#destroy()
> >          */
> >         public void destroy() {
> >                 // TODO Auto-generated method stub
> >                 super.destroy();
> >         }
> >
> >         /**
> >          * @see HttpServlet#doGet(HttpServletRequest request,
> > HttpServletResponse response)
> >          */
> >         protected void doGet(HttpServletRequest request,
> > HttpServletResponse
> > response) throws ServletException, IOException {
> >                 // TODO Auto-generated method stub
> >                 doPost(request,response);
> >         }
> >
> >         /**
> >          * @see HttpServlet#doPost(HttpServletRequest request,
> > HttpServletResponse response)
> >          */
> >         protected void doPost(HttpServletRequest request,
> > HttpServletResponse response) throws ServletException, IOException {
> >                 // TODO Auto-generated method stub
> >                 try{
> >                         room(request, response);
> >                 }catch(Exception e){
> >
> >                 }
> >
> >         }
> >
> >
> > //      @RequestMapping(value = "/room/admin")
> >         public void room(HttpServletRequest request,
> > HttpServletResponse
> > response) throws Exception {
> > //              String roomId = request.getParameter("roomId");
> >
> > //              String roomSecureLoginUrl =
> > meetingManager.generateSecureLoginUrl("renjiao",
> Integer.valueOf(roomId));
> >                 String roomSecureLoginUrl =
> > meetingManager.generateSecureLoginUrl("renjiao", 6);
> >                 response.sendRedirect(roomSecureLoginUrl);
> >         }
> >
> > }
> >
> >
> > Everything goes correctly except whiteboad don't work.
> >
> > I search on the internet and find it's a bug.
> > On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx,
> > On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
> > parent view was already destroyed
> >
> > Someone suggests modify method reconnectSuccess, like this:
> > <method name="reconnectSuccess" args="isInterview">
> >     if ($debug) Debug.write("Send reconnectSuccess to
> > ",canvas.rtmp_lc_name);
> >     canvas.sendViaLocalConnection(canvas.rtmp_lc_name,
> > "reconnectSuccess", [canvas.thishib.src, canvas.publicSID,
> hib.userobject, isInterview]);
> >     //add secure remote login
> >     if(canvas.secureRemoteUserLogin){
> >         if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");
> >         this.parent.as3ConnectionSuccess();//using SOAP API login,
> > miss this.
> >     }
> > </method>
> >
> > It doesn't work and cause other error. How to fix it?
> >
> >
> > Thanks a lot!
> >
> > Ron Sun.
> >
> >
> >
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com
>
>

RE: login using SOAP API whiteboard don't work.

Posted by Ron Sun <su...@live.com>.
Thanks very much first.

The document upload works if I login to a room without SOAP.  I mean document like pdf or jpg works,  but ppt seems have some problem. It does not matter, right?

If there are already exist any files in the room on whiteboard, SOAP clients join room and get an error:

onerror SWF!! canvas.mediaerrortimeout exceeded for 
http://localhost:5080/openmeetings/DownloadHandler?fileName=14f8b355ceb630a0bc3f26f4d9d54a2b%2Eswf&moduleName=videoconf1&parentPath=%2F14f8b355ceb630a0bc3f26f4d9d54a2b%2F&room_id=files&sid=20255704177e883fc3b0727b0357ef39

where is the problem?




-----Original Message-----
From: seba.wagner@gmail.com [mailto:seba.wagner@gmail.com] 
Sent: 2013年3月30日 5:44
To: dev
Subject: Re: login using SOAP API whiteboard don't work.

It is likely that the error has nothing todo with the SOAP login.
Does the document upload work if you login to a room without SOAP ?

Sebastian


2013/3/29 ron sun <su...@live.com>

> I'm not sure whether I said my problem clearly. So I try to make it 
> clear in this reply.
>
> I am using openmeetings_2_0. I have written a Java client to use SOAP api.
> My intent is to automatically log the user in a specific room. My Java 
> code performs follwoing steps:
> 1. getSession
> 2. loginUser
> 3. SetUserObjectAndGenerateRoomHash
> 4.http://localhost:5080/openmeetings/
>
> main.as3.swf11.swf?secureHash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&language
> =11&lz
> proxied=solo&lc_SID=139032
>
> Step 3 return the secureHash which is used in step 4. The user can 
> login the room, and both voice and video work fine, but the whiteboard 
> cannot work.
> HTTP-ERROR:500 when load a pdf to whiteboard. Audience cannot see 
> share doc on whiteboard which create in  http://localhost:5080/openmeetingsentrance .
>
> I see some bloges about this, but none works.
>
> I hope people see this letter help me.
>
> Thanks in advance.
>
>
> And all codes are in my first letter.
> com.ron.openmeetings.util. meetingManager return the secureHash URL.
> Calling Com.ron.openmeetings.servlet.Room can automatically log the 
> user in a specific room.
>
>
> -----Original Message-----
> From: ron sun [mailto:sunron@live.com]
> Sent: 2013年3月28日 17:22
> To: dev@openmeetings.apache.org
> Subject: login using SOAP API whiteboard don't work.
>
> Hi all,
> I'm using openmeetnis 2.0.
> I want my client directly enter the conference room by using SOAP API.
>
>
>
> /**********************************utility****************************
> ******
> /
> package com.ron.openmeetings.util;
>
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> import org.apache.openmeetings.axis.services.UserServiceStub;
> import 
> org.apache.openmeetings.axis.services.UserServiceStub.GetSession;
> import
> org.apache.openmeetings.axis.services.UserServiceStub.GetSessionRespon
> se; import 
> org.apache.openmeetings.axis.services.UserServiceStub.LoginUser;
> import
> org.apache.openmeetings.axis.services.UserServiceStub.LoginUserRespons
> e;
> import
>
> org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAnd
> Genera
> teRoomHash;
> import
>
> org.apache.openmeetings.axis.services.UserServiceStub.SetUserObjectAnd
> Genera
> teRoomHashResponse;
>
> public class meetingManager{
>
>         public static String generateSecureLoginUrl(String userName, 
> int roomId){
>                         try {
>                                 //generate sessionId
>                                 UserServiceStub userServiceStub = new 
> UserServiceStub("
> http://192.168.202.14:5080/openmeetings/services/UserServic
> e");
>                                 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("pass");
>                                 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(userObjectAndGenerate
> RoomHa
> sh);
>                                 String roomHash = 
> userObjectAndGenerateRoomHashResponse.get_return();
> //                              log.debug("Meeting secure roomHash:" +
> roomHash);
>                                 String ssoUrl = 
> "http://192.168.202.14:5080/openmeetings/main.as3.swf11.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);
>                         }
>                         return null;
>         }
>
> }
>
>
> /************************servlet*********************************/
> package com.ron.openmeetings.servlet;
>
> import java.io.IOException;
> import javax.servlet.ServletConfig;
> import javax.servlet.ServletException; import 
> javax.servlet.http.HttpServlet; import 
> javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
>
> import com.ron.openmeetings.util.meetingManager;
>
> /**
>  * Servlet implementation class Room
>  */
> public class Room extends HttpServlet {
>         private static final long serialVersionUID = 1L;
>
>     /**
>      * @see HttpServlet#HttpServlet()
>      */
>     public Room() {
>         super();
>         // TODO Auto-generated constructor stub
>     }
>
>         /**
>          * @see Servlet#init(ServletConfig)
>          */
>         public void init(ServletConfig config) throws ServletException {
>                 // TODO Auto-generated method stub
>         }
>
>         /**
>          * @see Servlet#destroy()
>          */
>         public void destroy() {
>                 // TODO Auto-generated method stub
>                 super.destroy();
>         }
>
>         /**
>          * @see HttpServlet#doGet(HttpServletRequest request, 
> HttpServletResponse response)
>          */
>         protected void doGet(HttpServletRequest request, 
> HttpServletResponse
> response) throws ServletException, IOException {
>                 // TODO Auto-generated method stub
>                 doPost(request,response);
>         }
>
>         /**
>          * @see HttpServlet#doPost(HttpServletRequest request, 
> HttpServletResponse response)
>          */
>         protected void doPost(HttpServletRequest request, 
> HttpServletResponse response) throws ServletException, IOException {
>                 // TODO Auto-generated method stub
>                 try{
>                         room(request, response);
>                 }catch(Exception e){
>
>                 }
>
>         }
>
>
> //      @RequestMapping(value = "/room/admin")
>         public void room(HttpServletRequest request, 
> HttpServletResponse
> response) throws Exception {
> //              String roomId = request.getParameter("roomId");
>
> //              String roomSecureLoginUrl =
> meetingManager.generateSecureLoginUrl("renjiao", Integer.valueOf(roomId));
>                 String roomSecureLoginUrl = 
> meetingManager.generateSecureLoginUrl("renjiao", 6);
>                 response.sendRedirect(roomSecureLoginUrl);
>         }
>
> }
>
>
> Everything goes correctly except whiteboad don't work.
>
> I search on the internet and find it's a bug.
> On  WebContent/src/modules/conference/commonVideoComponentAdapter.lzx,
> On line 37, it reads   "//FIXME: Throws a Null Pointer Exception if the
> parent view was already destroyed
>
> Someone suggests modify method reconnectSuccess, like this:
> <method name="reconnectSuccess" args="isInterview">
>     if ($debug) Debug.write("Send reconnectSuccess to 
> ",canvas.rtmp_lc_name);
>     canvas.sendViaLocalConnection(canvas.rtmp_lc_name, 
> "reconnectSuccess", [canvas.thishib.src, canvas.publicSID, hib.userobject, isInterview]);
>     //add secure remote login
>     if(canvas.secureRemoteUserLogin){
>         if ($debug) Debug.write("as3ConnectionSuccess invoke: ","");
>         this.parent.as3ConnectionSuccess();//using SOAP API login, 
> miss this.
>     }
> </method>
>
> It doesn't work and cause other error. How to fix it?
>
>
> Thanks a lot!
>
> Ron Sun.
>
>
>


--
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com