rmi java.security.policy访问被拒绝
我是Java中RMI主题的新手 我遵循此链接中找到的本教程:使用Eclipse 的RMI教程 但是我正在使用 NetBeans ,这是服务器代码: import java.rmi.*; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.*; public class AdditionServer { public static void main (String[] argv) { try { if (System.getSecurityManager() == null) { System.setSecurityManager(new S
0 2023-05-25
编程技术问答社区
Java RMI-Socket的许可问题
我试图将我的Java程序连接到2个不同的插座时遇到问题.基本上,我想初始化我的RMI服务器(连接到端口1099),然后在端口10002上初始化prologbeans.初始化似乎对两者都很好,但是一旦我尝试访问proologbeans,我就会得到以下错误: Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:10002 connect,resolve) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lan
0 2023-05-25
编程技术问答社区
以编程方式授予权限,而不使用策略文件
如何在不使用策略文件的情况下以编程方式授予AllPermissions rmi 应用程序? 更新: 进行了一些研究后,我写了此自定义策略类,并通过Policy.setPolicy(new MyPolicy())进行了安装. 现在我收到以下错误: 无效的许可:( java.io.filepermission \ c:\ eclipse \ plugins \ org.eclipse.osgi_3.7.0.v20110613.jar read read read class MyPolicy extends Policy { @Override public PermissionCollection getPermissions(CodeSource codesource) { return (new AllPermission()).newPermissionCollection(); } } 解决方案 基于
0 2023-05-25
编程技术问答社区
如何提高客户端-服务器架构应用程序的性能?
我们有一个基于客户端服务器体系结构的产品.有关使用的技术堆栈的一些细节. 客户 - Java Swing 服务器-RMI Java数据库 - Oracle 客户端位于世界的不同部分,但Java Server和Oracle数据库位于瑞典的同一台计算机上.因此,有很多网络延迟.位于遥远位置的客户表现可怕.该应用程序用于处理大小超过50MB的文件.通常,每个操作都需要大约1000多个网络调用. 根据您的经验,如何解决此问题并改善性能? 编辑:回答一些问题 文件包含需要处理并更新到数据库的实际业务数据. 一些网络调用可以进行批处理,但需要对代码进行重大重构.这是一个非常旧的应用程序,可以追溯到2001年.应用程序的设计使得服务器保留所有服务,并且可以在整个代码上重复使用,并且业务逻辑写在客户端.因此,此业务逻辑将服务器多次调用,因此是天文数字. -snehal 解决方案 减少您的往返数量 一次操作的1000次往返是天文数字.您不应该看到这些
0 2023-05-24
编程技术问答社区
RMI可能有多快?
我已经看到了一个问题:两个独立的Java Desktop应用程序之间的通信a>(答案:jGroups),我正在考虑用javagroups或直接rmi实施某些东西,但速度至关重要.我不会发送大量数据(MIDI消息的内容,所以每个字节3个,每三毫秒每三毫秒每三个消息),这将全部在同一台计算机上. 是否愚蠢地认为同一物理机器上的rmi/jgroup会很慢? (我的想法是我已经有一些延迟,因为我已经有一些,但是我不确定如何在这种情况下最好地谈论速度.) 我猜我真正的问题是:在Java中有任何相比的选择,这些选择比TCP/ip?我的意思是,我的意思是在Java中已经实现了事情,而不是JNI的可能性,而不是我的可能性. D需要实现:) 我知道,不要尽早优化所有这些,但也要安全比对不起. 解决方案 在Java中是否有任何选择的选项,这些选项比TCP/IP更快地经历了什么? 没有显着... afaik. ,但我认为您正在以错误的方式考虑这一点.假设您正在移动小消
2 2023-05-23
编程技术问答社区
JVM间通信的最高效性能
我有一个Java应用程序,需要在不同过程之间进行通信.过程可以在同一JVM或不同的JVM中运行,但在同一台计算机上运行. 我的申请需要将"消息"提交给另一个过程(相同或不同的JVM),并忘记了它.类似于诸如IBM" MQ"之类的消息队列,但很简单,并且仅使用内存,没有IO来进行性能提升. 我不确定绩效规定的最佳方法是什么. 我想知道RMI在性能方面是否有效,我认为这需要一些开销. 使用本地主机的TCP/IP插座呢? 还有其他想法吗? 解决方案 我想知道RMI在性能方面是否有效,我认为这需要一些开销. rmi对于它的工作有效.它的作用远远超过大多数人的需要,但通常越来越快.您应该能够以1毫米左右的延迟来获得每秒1-3 K消息的顺序. 使用本地主机的TCP/IP插座呢? 这始终是一个选项,但是使用普通的Java序列化,这不会比使用RMI快得多.您如何进行序列化和避免对高性能至关重要. 一个重要的说明是,大部分时间都花在序列化和否认
2 2023-05-23
编程技术问答社区
Java RMI与Scala,这可能吗?
java rmi -ememote方法调用 - 仅是java到java. 在 scala 网站上,我读到与Java的集成是无缝的,并且: Scala程序在Java VM上运行,字节代码与Java兼容,因此您可以充分利用现有的Java库或现有应用程序代码.您可以从Java调用Scala,并且可以从Scala调用Java,集成是无缝的. 这是否意味着我可以成功使用java到scala rmi? 有人直接尝试过吗? 编辑: 任何已知或发现的陷阱?? 是的到一个看起来像某人完成的消息线程.它说: 是的!感谢帮助.现在,我有一对基于RMI的Scala程序,将执行文档从一个Documentum System到另一个版本的文档转移(以前的版本); Scala代码与Documentum Java库非常好. 弄清楚如何使方法签名包括throws RemoteException似乎是最大的障碍. 其他解决方案 是的,这可以做到. RMI编译器可与Ja
2 2023-05-23
编程技术问答社区
在Java中通过引用获得一个对象
这个网站的新手,很高兴分享我的第一个问题:) 好吧,我将解释我目前设置的内容,以便我的问题可以更好地理解. 我有2个Java应用程序: 逻辑应用程序(所有重负荷发生) 仪器应用程序(应用于运行游戏的应用程序) 我对这两个应用程序的处理是使用仪器应用程序从游戏中提取信息,然后将其发送到逻辑应用程序. 信息/数据的提取是通过Java反射API完成的.然后,在提取信息后,它将通过RMI发送到逻辑应用程序(更多信息). 我有2个应用程序而不是1个原因是因为游戏在Java 7(旧游戏)上运行,因此仪器应用程序在Java 7上运行,我可以在我想要的任何Java版本上运行逻辑应用程序. 我在2之间传输数据/信息的方式是通过RMI(远程方法调用). 说明:逻辑应用程序在仪器应用程序中调用Getter方法,该方法使用Reflection API从其仪器中的游戏中获取字段值并返回. 现在,正如你们已经理解我在做什么的那样,现在我已经遇到了一段时间了. 问题:
20 2023-05-23
编程技术问答社区
为什么Java RMI无法通过参考获得返回值
在RMI中,我只能通过 获得返回值 InetSocketAddress address = new InetSocketAddress(hostname, port); Server server = Stub.create(Server.class, address); int return = server.getValue(); 但是,我无法通过 获得 public class Return { int value; } InetSocketAddress address = new InetSocketAddress(hostname, port); Server server = Stub.create(Server.class, address); Return return = new Return(); server.getValue(return); 我知道论点将被序列化和应有化,但这不是我的问题,我的问题是:"为什么Java不能像带RPC在C中
0 2023-05-20
编程技术问答社区
RMI中通过引用传递的问题?
有人可以告诉我我在哪里错了为什么此RMI聊天应用程序不起作用,目标是通过远程对象或序列化对象在客户,服务器和逻辑之间实现分离. import javax.swing.*; import java.awt.event.*; import java.rmi.*; import java.rmi.server.*; public class ChatClient1 implements ICallback { JFrame frame = new JFrame("Chat Client"); private JTextArea myText; private static JTextArea TAUinDispMsg; private JScrollPane myTextScroll; private JScrollPane TAUinDispMsgScroll;
2 2023-05-20
编程技术问答社区
在RMI中传递远程参数
我想确认RMI理论. 让我们假设客户端一个请求对象o o o b. 好吧,现在,如果在O接口(Interf)中,有一种方法: void foo(Interf obj); client a调用o.foo(o)时,它将传递存根引用(在接收之前),然后服务器不使用其本地参考,而是使用固定对象(客户端接收),因此服务器上的每个调用o利用其TCP/IP服务. 可以吗? ,如果您认为可以提高我的RMI理解,则应随时添加一些细节. 问候 解决方案 CORBA服务器(用于实现RMI/IIOP,而不是RMI/JRMP)通常实现"共凝结的存根"优化.也就是说,如果服务器在同一过程中驻留在对象上的存根上调用方法,则CORBA服务器通常会避免使用TCP/IP和线程池调度开销.相反,复制参数,将在目标对象上调用该方法,并复制结果对象并返回. 供参考,Java服务器通常实现此优化.生成的存根类使用 util.islocal 确定存根目标是否局部的方法.接下来,stu
0 2023-05-19
编程技术问答社区
RMI或套接字连接到OpenShift上的Java程序
我有以下简单方案: 我已经在OpenShift上创建了JBOSSAS7应用程序.我有一个index.jsp,每次加载Java类.此Java类收集一些数据并将其保存为字符串.我现在想做的是将文本包含在该字符串中,但没有在页面上显示. 我需要的是一种机制,例如RMI或可以连接到的套接字,并简单地使用客户端程序接收字符串.不幸的是,OpenShift会阻止所有端口,我无法使用RMI或套接字绑定到任何端口(我总是被拒绝获得许可). 有没有办法解决这个问题? 谢谢! 解决方案 我解决的方式非常简单,但在论坛或留言板上的解释和记录很差. OpenShift仅允许15000和35530之间的端口受用户约束.但是,在这样做时,用户还必须指定主机的IP地址,否则将使用localhost,在OpenShift上不允许使用.服务器的地址位于环境变量OPENSHIFT_JBOSSAS_IP下(我使用的是JBOSS AS 7.1,该变量可能会根据所使用的任何技术具有不同的名称).我
6 2023-05-11
编程技术问答社区
如何用Java RMI实现观察者模式?
我有一个客户端在服务器上启动长期运行的过程.我想定期向用户展示后台发生的事情.最简单的方法是对服务器进行轮询,但我想知道是否没有办法为此实现观察者模式.不幸的是,我正在使用RMI与服务器交谈,我担心我必须将客户端变成RMI服务器. 有其他我缺少的方式吗? 解决方案 http://sites.google.com/site/jamespandavan/home/java/sample-remote-observer基于-on-rmi 其他解决方案 RMI一般可以支持两种方式通信. (是的,RMI是要设置的PITA,并与其他任何事情一起做.) 但是,通过CGI脚本(!)的HTTP传输不支持它. 其他解决方案 在这里整合所有答案,我在客户端和服务器之间实现了2条RMI,使用了使用注册表 公开其存根 客户端从RMI注册表中获得服务器的存根 然后,客户将其存根作为服务器的Addobserver方法的观察者 服务器使用此存根通知客户端 以下代码将提供
2 2023-05-07
编程技术问答社区
Java RMI服务器和Objective-C客户端
可能的重复: java rmi服务器和目标c客户端 假设您在RMI中有以下内容: 这是远程接口: import java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote { String sayHello() throws RemoteException; } 这是服务器实现代码: (它实现接口) import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.net.*;
30 2023-05-07
编程技术问答社区
RMI元帅和序列化
在Java中,使用RMI在远程类中返回的对象,您只需要在该对象上实现序列化吗?我有一个带有变量的类节点,我想返回.我只是实施可序列化吗?如果是这样,接收对象的类呢?它的类也需要实现可序列化吗? 示例: public class node implements Serializable{ //variables //variables public node(//arguments to constructor here){ } } 解决方案 被序列化的类需要实现可序列化.发送和接收课不会.不确定为什么您会想到. 其他解决方案 如果您有一个类实例使用内置Java序列化的类,不仅必须实现Serializable,其所有实例变量也必须实现Serializable,或者是原始>标记transient(即,您告诉JVM他们不被序列化是可以的). 如果您的班级由于某种原因无法符合这些约束,则可以通过实施Externalizable来自己实现自定义序列化行为 - 然
8 2023-05-03
编程技术问答社区
RMI中的继电器是什么?
rmi 中的继电器是什么?我一直在搜索呼叫序列,但没有任何令人满意的结果.我无法理解a stub 在客户端和服务器计算机上的作用,在我在服务器计算机中启动后, rmi registery 会做什么?什么时候主服务器代码如下: import java.net.*; import java.rmi.*; public class AddServer { // when is this code executed public static void main(String args[]) { try { AddServerImpl addServerImpl = new AddServerImpl(); Naming.rebind("AddServer",addServerImpl); // what is it doing ? } catch(Exception exc) { System.out.println("Ex
4 2023-04-22
编程技术问答社区
rmi。运输tcp。tcptransport Connectionhandler占用大量CPU
我正在运行第三方RMI-Server应用程序提供一种方法("getImage()" returns an image as byte[]).我提供了该方法的实现(通过SOAP-WS获取图像). 运行此RMI服务器的问题是高CPU消耗量(用JVisualVM测量):65%的CPU时间进入"sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()",第二名以15%为"sun.net.www.http.KeepAliveCache.run()". "真实"工作(缩放图像)排在第四位. 该服务器正在Win 2003服务器上运行.我想资源/连接处理有问题吗?但这是实现问题还是Windows配置问题? 另一个观察结果是:如果CPU利用率很高,则内存利用率也会上升 - 问题是:这是因为GC无法完成其工作或许多等待交付的图像.我只能说用于byte[]的内存. 所以有什么想法该怎么办? 提前 解决方案 sun.rm
10 2023-04-21
编程技术问答社区
Java RMI资源
我目前正在进行一个涉及大量使用Java RMI的项目,我想知道是否有人知道任何良好的资源. 我目前发现的材料的问题是,它通常已经过时(例如Java 1.3)和/或一半完成.我什至很乐意在上面买一本书,但是在亚马逊上看所有书籍大约7岁. 因此,如果有人知道任何好的资源,书籍或良好的示例实现,我将非常有兴趣了解它们. 解决方案 一开始看起来不错.当然仍然是一个简单的例子,所以也许有关RMI性能/可伸缩性的提示由于您已经熟悉RMI. 其他解决方案 多年来,java.rmi发生了很小的变化,因此仍然可以参考大多数旧文档.请注意,如果您使用Java 5.0的版本,则需要编译RMI存根. 大多数人已经离开了RMI,并接受了如果您仍在考虑使用RMI前进oracle文档或在至于书籍… java rmi William Grosso或 Java网络编程 Elliotte Harold. 其他解决方案 RMI并没有太大变化.我认为1.3时代的书籍​​会很好.
14 2023-04-21
编程技术问答社区
上面的存根是什么��服务器�� 骨架是什么意思?
stub 在服务器端做什么?什么是骨架? 这是Wikipedia的图.我在服务器计算机和客户端计算机上安装了 stub .我知道存根在客户端的网络上有帮助,但是Stub在服务器端有什么作用? 也在上图中,骨架是什么意思? 解决方案 查看以下图片: 简短, stub 和骨骼是Web服务设置中的对应物. Skeleton belongs to service provider side和stub belongs to receiver side.在较低的存根和骨骼相互通信. 从客户端,业务对象与存根对象进行通信,而存根将责任表格为消息并调用Web服务.调用完成后,在服务提供商端,骨架是存根的并行对象,它会收到请求消息并理解并将信息传递给服务方面业务对象. 其他解决方案 存根和骨架都隐藏了一些复杂性. 存根隐藏了参数和网络级通信的序列化,以便向呼叫者提出简单的调用机制. 骨架负责将呼叫调用到实际的远程对象实现. http://docs.
2 2023-04-21
编程技术问答社区
什么会导致RMI方法调用间歇性失败?
长话短说,我有一个RMI服务器和客户端.服务器和客户端能够互相调用.客户端连接到服务器后,服务器可能会在客户端快速连续进行数百个方法调用. 问题是 - 在大量的服务器到客户端方法呼叫的结束时,有些人会失败,因为RMI声称它不能从服务器到客户建立连接,即使数百个呼叫会在它之前成功.我无法发布任何真实的代码,因为此项目相当大(大约50k行),但是这是抛出的例外的完整堆栈痕迹: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.net.SocketException: Connection reset at sun.rmi.server.UnicastServ
0 2023-04-21
编程技术问答社区