userregistrator.java
来自「主要是对串口驱动的的一些控制源码!!! 在下载javacomm20-win32」· Java 代码 · 共 141 行
JAVA
141 行
/**
* $Log: UserRegistrator.java,v $
* Revision 1.1 2003/01/16 13:12:40 mwulff
* initial version
*
* Revision 1.4 2002/12/20 18:52:25 mwulff
* no message
*
* Revision 1.3 2002/12/15 16:55:07 mwulff
* adjusted to reorganisation of the client logging system
*
* Revision 1.2 2002/12/14 22:43:44 mwulff
* no message
*
* Revision 1.1 2002/12/13 20:08:22 mwulff
* no message
*
*/
package de.fhm.jkf.comm.cl;
import de.fhm.jkf.comm.clsv.JKFCommunicationException;
import de.fhm.jkf.comm.clsv.RegisterRequest;
import de.fhm.jkf.comm.clsv.Response;
import de.fhm.jkf.resource.cl.JKFClientLogger;
/**
* @author marten wulff
*
* * <br><br><center><table border="1" width="80%"><hr>
* <strong><a href="http://jkf.sourceforge.net">The JKF Project</a></strong>
* <p>
* Copyright (C) 2002 by Marten Wulff
* <p>
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* <p>
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* <p>
* You should have received a copy of the <a href="http://www.gnu.org/copyleft/lesser.html">
* GNU Lesser General Public License</a> along with this library; if not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
* <hr></table></center>
*
* <p>
* The UserRegistrator class is used by JKFFactory to make an
* initial request to the JKFBroker. <br>
* </p>
* <p>
* Along with this request a hopefully unique user name is passed to the server<br>
* which is used to create an appender for LoggingEvents coming from<br>
* this user. As Response the UserRegistrator receives a session id <br>
* from the server, which is stored in the SessionManager. This session<br>
* id is send to the server every time the client connects, so that the <br>
* server can determin the clients HttpSession.<br>
* If the registration of a user fails, the jkf framework is shutting down.<br>
* </p>
* <p>
* This class is used only internally by the JKFFactory.
* </p>
*/
class UserRegistrator extends CommunicationHandler {
/**
* Constructor for UserRegistrator.
*/
UserRegistrator() {
super();
}
/**
* Method for registering a new user at the jkf server.
*/
void registerUser() throws Exception {
RegisterRequest request = new RegisterRequest();
Response response = null;
request.setUserName(generateUserName());
wrapper = new URLConnectionStreamWrapper(this.requestBrokerServlet.openConnection());
compressionHandler.setStreamWrapper(wrapper);
this.compressionHandler.sendObject(request);
response = (Response) this.compressionHandler.receiveObject();
handleSessionInfo();
followUpConnection(response);
// check if any exceptions on server side occured
if (response.errorOccured()) {
Exception ex = response.getRemoteException();
throw new JKFCommunicationException(ex);
}
}
/**
* Method for storing the retrieved session information from
* the server. If no session information is available, the
* JKF Framework is shutting down.
*/
private void handleSessionInfo() {
String sessionInfo = wrapper.getSessionInfo();
if(sessionInfo == null) {
JKFClientLogger.fatal("Couldn't retrieve session info from server");
JKFClientLogger.fatal("Shutting down ...");
System.exit(-1);
}else {
if(JKFClientLogger.isDebugEnabled()) {
JKFClientLogger.debug("Got session info from server: " + sessionInfo);
}
// set the session info
SessionManager.instance().setSessionInfo(sessionInfo);
}
}
private String generateUserName() {
String user = System.getProperty("user.name");
user.replace(':', '_');
user.replace('?', '_');
user.replace('*', '_');
user.replace('|', '_');
user.replace('<', '_');
user.replace('>', '_');
user.replace('/', '_');
user.replace('\\', '_');
user.replace('\"', '_');
return user;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?