serverapp.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 161 行
JAVA
161 行
/*
* @(#)ServerApp.java
*
* The program is provided "as is" without any warranty express or
* implied, including the warranty of non-infringement and the implied
* warranties of merchantibility and fitness for a particular purpose.
* IBM will not be liable for any damages suffered by you as a result
* of using the Program. In no event will IBM be liable for any
* special, indirect or consequential damages or lost profits even if
* IBM has been advised of the possibility of their occurrence. IBM
* will not be liable for any third party claims against you.
*/
import com.ibm.aglet.*;
import com.ibm.aglet.system.*;
import java.net.URL;
import java.util.Properties;
import com.ibm.awb.util.Resource;
import com.ibm.atp.daemon.Daemon;
/**
* The ServerApp example illustrates how to embed the AgletsServer facility
* into an application program.
*
* @version 1.00 $Date: 98/03/17 1:48p $
* @author Mitsuru Oshima
* @see aglet.system.AgletRuntime
* @see ibm.atp.daemon.Daemon;
* @see ibm.atp.daemon.Main
*/
public class ServerApp extends ContextAdapter {
public void agletCreated(ContextEvent ev) {
System.out.println("Aglet Created : " + ev.getAgletProxy());
}
public void agletCloned(ContextEvent ev) {
System.out.println("Aglet Cloned : " + ev.getAgletProxy());
}
public void agletArrived(ContextEvent ev) {
System.out.println("Aglet Arrived : " + ev.getAgletProxy());
}
public void agletActivated(ContextEvent ev) {
System.out.println("Aglet Activated : " + ev.getAgletProxy());
}
public void agletDisposed(ContextEvent ev) {
System.out.println("Aglet Disposed : " + ev.getAgletProxy());
}
public void agletDispatched(ContextEvent ev) {
System.out.println("Aglet Dispatched : " + ev.getAgletProxy());
}
public void agletDeactivated(ContextEvent ev) {
System.out.println("Aglet Deactivated : " + ev.getAgletProxy());
}
public void agletReverted(ContextEvent ev) {
System.out.println("Aglet Reverted : " + ev.getAgletProxy());
}
public void showMessage(ContextEvent ev) {
System.out.println("message : " + ev.getMessage());
}
//////////
public static AgletProxy startAglet(AgletContext cxt,String AgletName) throws java.lang.Exception {
//AgletContext cxt=initStart();
//AgletProxy p = cxt.createAglet(null, "examples.hello.HelloAglet", null);
AgletProxy p = cxt.createAglet(null,AgletName, null);
return p;
}
//////////
public static AgletContext initStart() throws java.lang.Exception {
//
// Temporary
//
//for (int i=0;i<=2;i++)
//System.out.println("args["+i+"]:"+args[i]);
//System.out.println(args);
//com.ibm.atp.daemon.Main.importOptions(args);
//
// Create and initialize a server.
//
Daemon daemon = Daemon.init(null);
/*
* if any.
try {
daemon.setAccessLogFile( "log.access" );
daemon.setMessageLogFile("log.message" );
daemon.setErrorLogFile( "log.error" );
} catch (IOException ex) {
ex.printStackTrace();
}
*/
daemon.setAccessLogStream(System.out);
daemon.setMessageLogStream(System.out);
daemon.setErrorLogStream(System.err);
//
// Obtains a runtime object
//
AgletRuntime runtime = AgletRuntime.init(null);
//
// Creates a named context. To dispatch to this context, you have to
// specify the destination, for example,
// "atp://aglets.trl.ibm.com:434/test"
//
AgletContext cxt = runtime.createAgletContext("test");
cxt.addContextListener(new ServerApp());
// If you want to allow incoming aglets to use GUI.
// initialize gui....
try {
Class.forName("sun.awt.image.JPEGImageDecoder");
Class.forName("sun.audio.AudioPlayer");
} catch (Exception ex) {
ex.printStackTrace();
}
try {
Class.forName("sun.awt.PlatformFont"); // for 1.1
} catch (Exception ex) {
ex.printStackTrace();
}
try {
new java.awt.Frame().addNotify();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
}
try {
Class.forName("sun.awt.ScreenUpdater");
} catch (Throwable t) {
}
//
// Starts this server as aglets server.
//
daemon.start("aglets");
//
// Starts the AgletContext.
//
cxt.start();
return cxt;
//
// From here on, you can use this context.
// (creating, dispatching an aglet, for instance)
//
//AgletProxy p = cxt.createAglet(null, "examples.hello.HelloAglet", null);
////Message msg = new Message("startTrip",
//// cxt.getHostingURL().toString());
// go to itself and say hello
////p.sendMessage(msg);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?