服务器端业务接口
public interface Biz extends Remote {
public String aloha() throws RemoteException;
}
服务器端业务实现
public class BizImpl extends UnicastRemoteObject implements Biz {
private static final long serialVersionUID = -8559392326593037120L;
public BizImpl() throws RemoteException {
super();
}
@Override
public String aloha() throws RemoteException {
return "Aloha Baby.";
}
}
服务器注册远程实现名称
public class Server {
public Server() {
try {
Biz bis = new BizImpl();
// style-1
Registry registry = LocateRegistry.createRegistry(RMIParameter.PORT);
registry.rebind(RMIParameter.NAME, bis); // replace existing binding name
// style-2
//java.rmi.Naming.rebind(RMIParameter.NAME, bis); // replace existing binding name
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
new Server();
}
}
style-2 需要指定一个Policy文件或者运行rmiregistry
java -Djava.security.policy=folder_x/rmi/policy_file creative.fire.rmi.Server
Policy文件的内容为:
grant{
permission java.net.SocketPermission "localhost:9527", "connect, resolve";
};
运行rmiregistry是修改 JDK 目录下的jre/lib/security/java.policy
rmiregistry(linux)
start rmiregistry(windows)
允许任何人(targets)作任何事情(actions):
grant{
permission java.security.AllPermission "","";
};
OR
grant {
permission java.security.AllPermission;
};
客户端打桩调用
public class Client {
public static void main(String args[]) {
try {
Biz bis = (Biz) Naming.lookup(RMIPREFIX + PORT + NAME);
System.out.println(bis.aloha());
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关推荐
json-rpc-for-java ... JavaScript中远程级联调用(RPC)java对象中的方法并返回结果强荐友人新RPC框架 来自java eye / it eye的1.0详细报道 2、支持复杂js对象作为入参:能够传递复杂JavaScript Ob
有了 BlazeDS,通过简单的配置,一个 Java 接口就可以作为服务暴露给 Flex,供其远程调用。 尽管现有的 EmployeeMgmt 应用程序已经有了 Façade 接口,但这个接口是暴露给 Servlet 使用的,最好能再为 Flex 定义另...
/ 199 8.2.2 操作数栈 / 204 8.2.3 动态连接 / 206 8.2.4 方法返回地址 / 206 8.2.5 附加信息 / 207 8.3 方法调用 / 207 8.3.1 解析 / 207 8.3.2 分派 / 209 8.4 基于栈的字节码解释执行引擎 / 221 8.4.1 ...
有了 BlazeDS,通过简单的配置,一个 Java 接口就可以作为服务暴露给 Flex,供其远程调用。 尽管现有的 EmployeeMgmt 应用程序已经有了 Fa?ade 接口,但这个接口是暴露给 Servlet 使用的,最好能再为 Flex 定义另...
展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的...
8.3.1 开发远程调用的无状态 Session Bean 304 8.3.2 开发本地调用的无状态 Session Bean 311 8.4 发布Session Bean 314 8.4.1 打包EJB-JAR 315 8.4.2 Annotation与部署描述文件 315 8.5 开发有状态的Session Bean ...
展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的...
1.3.2 COM与Enterprise Java Beans 1.3.3 Windows之外的COM 小结 第2章 从C++到COM 2.1 C++客户重用C++对象——例程DB 2.1.1 C++对象 2.1.2 客户程序 2.2 将C++对象移进DLL中——例程DB_cppdll 2.2.1 ...
全书共分为18章,每章分别对应于使用J2EE和WebLogic Server开发Web应用程序的各个阶段,并且都围绕特定的Java Enterprise技术来组织,包括模型-视图-控制器设计模式、JDBC数据库连接、远程方法调用、JMS、EJB、Java-...
全书共分为18章,每章分别对应于使用J2EE和WebLogic Server开发Web应用程序的各个阶段,并且都围绕特定的Java Enterprise技术来组织,包括模型-视图-控制器设计模式、JDBC数据库连接、远程方法调用、JMS、EJB、Java-...
6.4.8 方法调用和返回指令 6.4.9 异常处理指令 6.4.10 同步指令 6.5 公有设计和私有实现 6.6 Class文件结构的发展 6.7 本章小结 第7章 虚拟机类加载机制 7.1 概述 7.2 类加载的时机 7.3 类加载的过程 ...
简介:动态代理工具 是 java.lang.reflect 包的一部分,在 JDK 1.3 版本中添加到 JDK,它允许程序创建 代理对象,代理对象能实现一个或多个已知接口,并用反射代替内置的虚方法分派,编程地分派对接口方法的调用。...
该项目包含基于Java RMI(远程方法调用)的分布式的简单实现。 作为实践的一种手段,实现了一对信号量(即公平和不公平的信号量),它们仅使用Java的synchronized原语。 信号量 有两种可用的信号量: FairSemaphore...
全书共分为18章,每章分别对应于使用J2EE和WebLogic Server开发Web应用程序的各个阶段,并且都围绕特定的Java Enterprise技术来组织,包括模型-视图-控制器设计模式、JDBC数据库连接、远程方法调用、JMS、EJB、Java-...
其中LocalPlayer作为AIPlayer和HumanPlayer的装饰器,在内部保存这两个类之一的一个引用,在自身的singleStep方法中,调用被装饰类对象的singleStep方法,并添加向远程发送信息的装饰代码。 4. 设置棋盘不能够接受...
AndroidAIDLLearnDemo Android Studio中有关Android AIDL的简单实践 在Android Studio中使用AIDL的步骤 在模块中添加了新的AIDL文件,... 通过在第3步中持有的引用来调用Stub的方法,这意味着您是从远程调用该方法的。
利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动...
构建分布式远程过程调用。 交付基于多语言实现的Storm Topology,包括Java、Clojure、Ruby和C++。 将Storm与Cassandra、Hadoop集成。 使用Cascading实现基于批处理的单词重要度算法。 创建并部署预测评分模型和分类...