Eclipse RCP、RMI和捆绑程序
我正在尝试将Eclipse RCP与RMI相结合.为此,我创建了六包: (在括号中是依赖项) 核心:客户端和服务器的接口 服务器(核心):服务器实现和注册表开始类 serverapp(服务器):GUI客户端基本上只是实例化注册表启动器(并在激活上启动) 客户端(核心):客户实施 clientapp(客户端):GUI客户端 现在我启动了ServerApp,但是我得到了 Caused by: java.lang.ClassNotFoundException: core.rmi.CallbackServerInterface (no security manager: RMI class loader disabled) 现在我用 启动了服务器 -consoleLog -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:${workspace_loc}/core/ (我的ja
6 2024-04-05
编程技术问答社区
强制RMIService与特定的IP地址进行绑定
我使用在端口4099运行的Spring rmiserviceexporter实施了RMIService.当我启动JBOSS时,RMI服务将被键合为0.0.0.0.0:4099,而不是127.0.0.0.1.1:4099.我尝试了不同的参数 -Djava.rmi.server.hostname=127.0.0.1 -Djava.rmi.server.hostname=localhost -Djava.rmi.server.hostname=localhost.localdomain along with -Djava.net.preferIPv4Stack=true parameter. Started Jboss with -b 127.0.0.1 它始终与0.0.0.0:4099联系在一起.我使用 检查它 >netstat -anp | grep 4099 >TCP 0.0.0.0:4099 0.0.0.0:0
8 2024-03-31
编程技术问答社区
通过RMI对客户进行安全认证
我正在考虑对我的RMI服务的用户进行认证 interface RemoteService extends Remote { ... } interface RemoteServiceProvider extends Remote { ... } class RemoteServiceProviderImpl implements RemoteServiceProvider { RemoteService getService(String authCode) throws RemoteException { if (check(authCode)) return (RemoteService) UnicastRemoteObject.export(theRemoteService, 0); else throw ...; } } 但是,这可能并不是真正的安全.我怀疑当真正的服务是export时,任何猜测正确端口的人都可以获取它. 我该怎么
10 2024-03-20
编程技术问答社区
一个进程如何能与同一主机上的另一个进程进行认证和安全通信?
我试图通过SSL与Java RMI一起执行此操作,但后来我发现SSL证书将提供主机级的身份验证,而不是处理级别的身份验证. 另外,我正在将密钥库的密码存储在配置中;因此证书可以由另一个攻击者过程使用,并且可以进行身份​​验证. 解决方案 SSL/TLS使用的X.509证书可能会用于识别以外的其他内容(通常已经针对客户端证书完成). 在建立与服务器的SSL/TLS连接时涉及两种类型的验证: 证书验证本身:此证书验证证书在使用时的信任且有效,通常是使用RFC 3280/RFC 5280中所述的PKI. 主机名验证:一旦信任证书是真实的,客户就会检查它是否适用于所需的服务器.这是特定于协议的(例如RFC 2818,第3.1节的HTTPS),但已对RFC 6125中的大多数协议进行了概括.(这类似于检查护照上的图片是否与您面前的名称相匹配,而不仅仅是接受任何有效的护照.) 默认情况下,Java的SSLSocket S除非您添加一些操作,否则不要执行第二步. (在
6 2024-03-20
编程技术问答社区
编写一个安全的RMI服务器-客户端应用程序
我正在编写一个通过Internet进行通信的服务器 - 客户端应用程序,我对安全性有几个问题和疑虑.我做了一些研究,发现这里有一些帖子很有用,但是我想要更多信息.我阅读的一些相关问题是: rmi java rmi authentication&Security&Security&Security&Security&Security&Security. ExportObject公开? Java RMI安全吗? 我有3个部分要考虑: 客户和服务器之间交换的信息. 客户的身份验证. 利用运行的RMI服务器(黑客等). 我所知道的: rmi超过SSL.使用SSL插座而不是默认套接字将加密客户端和服务器之间传递的所有信息.这包括对象交换和方法调用. 在建立RMI连接之前,使用用户名/密码组合使用用户名/密码组合进行身份验证.据我了解,应该有一种在RMI连接内进行身份验证的方法,但被投票下来. 不太确定这里可以或需要做什么.我确实知道您不能仅写自己的
6 2024-03-19
编程技术问答社区
Spring异步RMI调用
是否可以异步调用Java RMI?我希望我的RMI呼叫立即返回,并希望服务器完成任务完成后调用回调. 我目前正在使用Spring Framework的RMI支持,并且找不到在春季描述它的任何文档,我怀疑我需要自己实施它.如果可能的话,请提供示例. 预先感谢! 解决方案 RMI是同步的,据我所知,不支持回调. JMS是java ee拨打呼叫的方法.如果您使用的是Spring,那将是消息驱动的Pojo. 另一个值得一看的地方,因为您已经在使用Spring,是Spring batch 或Spring intementation .我会在我自己写之前尝试任何一个. 但是,如果那不为您做,您的怀疑是正确的 - 您必须自己实施. 其他解决方案 我看上去没有春季批处理和春季集成,但是没有更改RMI协议,实现异步调用的唯一方法是跨越一个新线程,等待服务器的结果,这不是一个真正的异步致电. 真正异步呼叫的方法是: 用Nio实施RMI. 当调用代理
6 2024-03-18
编程技术问答社区
Spring异步RMI调用
是否可以异步调用Java RMI?我希望我的RMI呼叫立即返回,并希望服务器完成任务完成后调用回调. 我目前正在使用Spring Framework的RMI支持,并且找不到在春季描述它的任何文档,我怀疑我需要自己实施它.如果可能的话,请提供示例. 预先感谢! 解决方案 RMI是同步的,据我所知,不支持回调. JMS是java ee拨打呼叫的方法.如果您使用的是Spring,那将是消息驱动的Pojo. 另一个值得一看的地方,因为您已经在使用Spring,是Spring batch 或Spring intementation .我会在我自己写之前尝试任何一个. 但是,如果那不为您做,您的怀疑是正确的 - 您必须自己实施. 其他解决方案 我看上去没有春季批处理和春季集成,但是没有更改RMI协议,实现异步调用的唯一方法是跨越一个新线程,等待服务器的结果,这不是一个真正的异步致电. 真正异步呼叫的方法是: 用Nio实施RMI. 当调用代理
16 2024-03-18
编程技术问答社区
异步的Java RMI
最近我需要使用RMI,并且我对需要做的事情足够了解,但是在我重新访问此主题时,一件事吸引了我.是否可以将异步RMI调用到服务器上的同一服务? 假设我在客户端上有n个线程和一个服务器端的对象 - all it.块,因为它没有共享的资源可担心. 有什么想法吗?还是这是更好的其他方法? 解决方案 这样做应该没有问题.从服务的角度同时拨打同一服务. 等同于多个客户. 任何服务器端对象都应被写成安全访问. 其他解决方案 可能您应该使用JMS队列在J2EE架构上进行异步调用.在这些情况下,它可以很好地工作. 其他解决方案 使用 redisson 框架远程服务可以在同一节点上与客户端side Redisson实例一起注册与客户端redisson实例共享. 让我们假设YourServiceImpl包含您需要远程调用并实现YourService接口的方法. 您的维修单元应通过远程服务对象在redisson中注册: YourService you
16 2024-03-18
编程技术问答社区
解决一个java.util.ArrayList$SubList notSerializable的异常
我在类型列表的对象上使用了sublist函数.问题是我正在使用RMI,并且因为Java.util.arraylist $ sublist是由非序列化类实现的也是如此. 我已经看到我应该将结果列表复制到新的linkedlist或arraylist并通过. 有人知道有助于轻松地做到这一点的功能吗? List list = originalList.subList(0, 10); 解决方案 这是因为,由sublist()方法返回的列表是" RandomAccessSublist"的实例,该实例是不可序列化的.因此,您需要从sublist()返回的列表中创建一个新的arraylist对象. List list = new ArrayList(originalList.subList(0, 10)); 其他解决方案 解决方案仅仅是此代码: ArrayList list = new ArrayList
10 2024-03-04
编程技术问答社区
小程序与服务器之间的通信,我如何才能做到这一点?
我有一个小程序,我必须将请求发送到Web应用程序,以从数据库中的服务器中获取数据.我正在使用对象,服务器用对象响应我非常有用! 小程序如何与服务器通信? 我认为Web Services方法,RMI和...让我开心,但是哪个是最好和可靠的? 解决方案 只要您的小程序与服务器通信,您可以使用序列化对象.您只需要在applet Jar和服务器上维护相同版本的对象类.它不是最开放或最可扩展的方法,但是就开发时间而言,它是很快的. 这是一个例子. 实例化与servlet的连接 URL servletURL = new URL(""); URLConnection servletConnect = servletURL.openConnection(); servletConnect.setDoOutput(true); // to allow us to write to the URL servletConnect.
8 2024-03-02
编程技术问答社区
有没有可能在Android中导入java.rmi.*?
我在分布式系统课程上有一个项目,我们必须在项目上使用Java.rmi.所以我只是在问那里要在Android上使用这些图书馆? 谢谢. 解决方案 RMI在Android上不支持.您可以自己实施它,但这将是一项非平凡的工作. 其他解决方案 RMI库不包括在Android API中.那真的很糟糕.我做了一个需要使用此功能的项目,但不能这样做.不幸的是,如果您为此答案进行了搜索,则有些人试图将RMI包裹在自定义的库中,但这对每个人都不起作用. 您正在使用RMI,我认为您需要使用RMI访问一些数据库.这是我的解决方案: 我构建了一个简单的Java服务器作为连接. 我将数据从源将数据拉到Java服务器中,使用简单的TCP连接将数据传输到我的Android中. 另外,Android将数据传输到我的SEVER中,我的服务器使用RMI将数据转发到源服务器中. 不是一种直接的方法,但是这样做很容易.如果您想阅读更多信息,我将包括有关如何构建此Interme
8 2024-02-06
编程技术问答社区
安卓网络
我们正在实施一个严重的客户架构,某些客户端应用应该在Android OS上运行.想到的第一个想法是使用Java RMI,但是RMI API显然不是为Android实施. 所以 1)是否有一种方法可以在Android应用程序中使用Java RMI API?我可以从标准Ja​​va库中导入它吗? 2)RMI的替代品是什么对Android和桌面应用程序都可以使用的? 谢谢. 解决方案 rmi是不粘在同一子网上的任何东西的不良解决方案.从失败中恢复和漫游客户方面,它很糟糕. 有很多可能的解决方案,不限于 HTTP REST样式,带有XML或JSON Data jsonrpc/xmlrpc 肥皂(不是最适合性能的角度) 插座上的协议缓冲区(请TLS/SSL).考虑WebSocket. 其他解决方案 如果使用轻重量Java/RMI Android实现是可行的,您可以查看以下链接: https://github.com/jorgenpt/jorgen
8 2024-01-31
编程技术问答社区
无法与远程机器建立RMI连接
我似乎无法使用RMI连接两台机器.为了确保我的代码没有问题,我从Wikipedia复制了一个简单的示例( . 我尝试给出所有权限并关闭所有防火墙,但我仍然会遇到此错误: java.rmi.ConnectException: Connection refused to host 55.229.xx.xxx; nested exception is:java.net.ConnectException: Connection timed out: connect 过去三天我一直在尝试这样做,但我似乎仍然无法摆脱基本配置问题. 解决方案 问题可能是您的RMI服务器正在发送其本地地址,而不是WAN地址. System.setProperty("java.rmi.server.hostname", *host IP*); 还查看有关RMI的安全政策: http://docs.oracle.com/javase/javase/javase/tutorial/tuto
12 2024-01-25
编程技术问答社区
对亚马逊EC2上的Weblogic 10gR3 RMI服务器的负载平衡请求
我正在基于RMI的分布式解决方案的开发,并在多个WebLogic 10GR3(10.3.0.0)节点上部署.其中一个节点托管RMI服务器,其他节点通过外国JNDI提供商访问它.在尝试通过添加其他RMI服务器来改善基础架构时,我们面临一些问题. 我们的基础架构的详细信息: -RMI服务器在托管服务器上运行,端口7005. -RMI客户端通过远程JNDI提供商访问它,该提供商指向以下内容:t3://主机名:7005 我在创建其他RMI服务器以及为什么不起作用时发布了我们到目前为止尝试的内容: 1)使用Amazon ELB->这不是一个选项 2)配置多点JNDI提供商(类似:T3://HOSTNAME1:7005,HOSTNAME2:7005),显然适用于JMS队列 - >所有请求均定向到RMI服务器上的RMI服务器HostName1,并且该应用程序实际上工作正常.但是,当故意使服务器在HostName1崩溃后面时,没有向HostName2引入任何请求. (应该完全重定
16 2024-01-24
编程技术问答社区
如何使用Jconsole连接到EC2?
我正在MacBook上运行JConsole,并尝试连接到没有图形的EC2上的Linux终端(仅命令行访问). 我这样运行代码: java -jar program.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9005 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.remote.ssl=false 我阅读在这里在这里通过EC2访问的问题(在我遇到问题之后),解决方案似乎是'java.rmi.server.hostname to the public hostname of the instance' 我对如何执行此操作有些困惑.我尝试了两件事,一件事将其直接放在我的代码中(在void静态主部分中): System.setProperty( "java.rmi.serve
14 2024-01-24
编程技术问答社区
cq5-livecopy-如何判断一个页面是一个活的副本,并找到其父母的子女
我正在尝试通过WebDav访问Adobe AEM,但是,我无法正常工作. 我正在运行开箱即用的CRX-QuickStart,因此我使用端口4502和默认工作区.我正在使用Windows Explorer作为WebDav客户端,我用来毫无困难地连接到SharePoint. 这些似乎是通过WebDav连接AEM的唯一说明. /Current/how_to/webdav_access.html 指令暗示您只需将WebDav客户端指向以下URL即可,而您的金色.但是,我似乎无法使它工作. http://localhost:4502/crx/repository/crx.default 由于这不起作用,我已经验证了其他设置. 例如,在OSGI Configuration Manager http://localhost:4502/system/console/configMgr中,我在各种WebDav设置上进行了验证并单击Save . Apache Sling
18 2024-01-19
编程技术问答社区
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
22 2023-12-06
编程技术问答社区
Hibernate OneToMany关系是PersistentBag而不是List
我正在Javafx中开发一个应用程序,该应用程序通过RMI与耳朵连接.此耳朵连接到SQLServer DB并使用Hibernate映射Pojos. 这些pojos包含双向Onetomany和许多人关系.结果,这些关系被映射为列表. company.java @Entity @Table(name = "Company") public class Company implements Serializable{ /** * */ private static final long serialVersionUID = 1L; @Id @Column(name="id_company",nullable = false) @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; @OneToMany(mappedBy = "company",cascade = CascadeType.A
12 2023-12-04
编程技术问答社区
Spring+Websphere 8.5:无法查找JNDI名称[java:comp/Websphere/ExtendedJTATransaction]
有一个WebSphere为8.5,其中运行XA DataSource.还有一个弹簧应用程序必须在此环境中工作并连接到数据源.应用程序上下文由servlet加载,应用程序使用RmiExporters以提供对某些服务(在单独的线程中共享)的RMI访问权限,并且所有DAOS的方法都标有@Transactional>. 如果我尝试从主线程(例如,在任何类的初始化期间)将一些内容写入数据库,则可以正常工作.但是,如果我尝试通过rmi invokation编写(或使用hql select-Query阅读),我会看到一个例外: org.hibernate.service.jndi.JndiException: Unable to lookup JNDI name [java:comp/websphere/ExtendedJTATransaction] at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServ
28 2023-12-03
编程技术问答社区
org.omg.CORBA.TRANSIENT:初始和转发的 IOR 无法访问 vmcid。IBM小代码。E07来自独立的应用程序
我正在从独立的Java应用程序连接到WebSphere实例,这很微不足道: InitialContext initCtx = new InitialContext(); 该代码在WebSphere 7中正常工作,但是在更新websphere 8.5之后,我得到了以下例外: Caused by: org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 completed: No at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1276) at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1457) at com.ibm.rmi.corba.
24 2023-12-03
编程技术问答社区