问题标签 [iiop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Websphere java.rmi.RemoteException: CORBA BAD_OPERATION
我正在尝试在部署在 websphere 服务器上的应用程序中使用有状态 EJB Bean。对于我们在 Wildfly 上部署的其他客户,我在那里没有任何问题。然而,在 Websphere 上,第一次查找也可以正常工作。但在那之后,使用 EJB Bean 的托管 bean 会通过<t:savestate>
它的请求范围被序列化,但我们需要它的寿命比这更长(不幸的是,我们仍在研究 JSF 1,但我们很快就会去 JSF 2 并希望解决视图/流范围的问题。无论如何都需要解决这个问题,因为我们需要在我们的应用程序的早期版本中使用该功能。)在下一个请求中,尝试访问 EJB Bean,它仍然存在,但抛出以下异常:
我尝试了几种方法来查找 bean,但我不知道如何解决这个问题。它都发生在 Websphere 8.0.0.4 和 8.5.5.14 上。Bean 正在实现 Serializable,我什至尝试让远程接口扩展 Serializable。
java - org.omg.CORBA.TRANSIENT:初始和转发的 IOR 不可访问 vmcid:IBM 次要代码:来自 IIB 应用程序的 E07
我正在研究 IIB 10。有一个肥皂应用程序,其中使用 java 计算节点调用 iiop URL。我收到以下错误“org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 已完成:否”
kubernetes - Kubernetes 中的远程 EJB
我正在尝试在部署在 k8s 中的 2 个 WebSphere Liberty 服务器之间设置远程 EJB 调用。是的,我知道 EJB 不是在 k8s 中部署时想要使用的东西,但我现在必须处理它。
我遇到的问题是如何在 k8s 中公开远程 ORB IP:端口。据我了解,只有在客户端和远程“侦听”同一个 IP 时,它才能使其工作。我不是网络专家,而且我对 k8s 很陌生,所以也许我在这里遗漏了一些东西,这就是我需要帮助的原因。
我让它工作的唯一方法是当我明确地将远程服务器上的主机设置为它自己的 IP 地址,然后从同一个 IP 上的客户端访问它。该测试是在具有 macvlan0 网络的 Docker 主机上完成的(每个容器都有自己的 IP 地址)。
这是远程 server.xml 配置的 ORB 设置:
和客户端 server.xml 配置:
从客户端,这是我尝试访问它的 JNDI 名称:
这有效。
由于不想在公开 ORB 端口时设置固定 IP,我必须找到一种基于主机 IP 动态公开它的方法。在 0.0.0.0 上公开不起作用。本地主机也是如此。在这两种情况下,客户端都拒绝连接这种错误:
在 k8s 中,我通过 LoadBalancer 服务为远程 Pod 暴露了端口 2809,并尝试从客户端 Pod 访问远程服务器,我在 corbaname 定义中设置了远程的服务 IP 地址。这当然行不通。我可以通过 telnet 访问远程 ip:port,所以这不是网络问题。
我已经尝试了远程服务器上的所有设置组合。在 host="0.0.0.0" 上导出结果与上述相同的异常(连接被拒绝)。
我不确定在内部 IP 地址上导出是否可行,但即使可以,在将 pod 部署到 k8s 之前,我也不知道内部 IP。或者有没有办法知道?没有环境。变量,我已经检查过了。
暴露服务 IP 地址(使用 host="${REMOTE_APP_SERVICE_HOST}")失败并出现以下错误:
同样,我知道用 Rest 替换 EJB 是可行的方法,但现在不是一个选择(不要问为什么)。
请帮忙!
编辑:
我设法取得了一些进展。实际上,我相信我已经成功调用了远程 EJB。我所做的是添加hostAliases
pod 定义,它为我的主机添加了别名,如下所示:
然后我将此主机名添加到远程 server.xml:
我还在客户端 pod 中添加了主机别名:
最后,我将 JNDI 名称更改为:
通过此设置,远程服务器被成功调用!
但是,现在我遇到了另一个在 Docker 主机上测试时没有遇到的问题。查找已完成,但我得到的不是我所期望的。
查找代码几乎是您所期望的:
不幸的是,这个狭窄的电话失败了ClassCastException
:
我收到的对象是org.omg.stub.java.rmi._Remote_Stub
. 有任何想法吗?
corba - Locust 可以测试使用 CORBA IIOP 协议的系统吗
Locust Features/• 中的短语“几乎任何系统或协议”/• 可以测试任何系统,给我留下了不确定性,并没有定义它的真正含义。作为开发人员,我在阅读本文时的第一个问题是想知道它是否可以测试使用 CORBA IIOP 协议的系统,这在 2021 年几乎是未知的。我确信 Locust 可以处理带有 HTML、XML 和 JSON 有效负载的 HTTP/HTTPS , 但它是否处理 CORBA IIOP 协议?
java - 使用 Oracle Java ORB 使用命名服务查找时如何指定网络接口
因此,根据下面列出的教程,我目前正在托管一项利用 Oracle 的互操作命名服务 (INS) 的服务。该服务在一台机器上部署了一个servant,并将它注册到INS,我们称这台机器为A。
https://docs.oracle.com/javase/8/docs/technotes/guides/idl/INStutorial.html
当我根据教程在同一台机器上使用客户端时,一切正常。但是,当我尝试通过 LAN 进行查找时,当 INS 服务器托管在机器 A 上且客户端位于机器 BI 上时,在缩小参考范围时会出现错误。
我将服务器设置为 192.168.0.XXX 并且机器 B 可以访问它,并且在这些线路的某处出现错误。AFAIK 正在与命名服务和位于服务中的对象建立连接,但是当它尝试查找对象时,它在机器 A 上使用了不正确的接口。然后将错误返回到机器 B。
所以我的问题是,有没有办法准确指定命名服务在查找时可以使用哪个接口?我在 Windows 主机和 Linux 主机上都试过。linux 主机使用了一个未列出但在 /etc/hosts 文件中的 iface,Windows 主机使用了 ipconfig 中列出的最后一个接口的 IP(172.xx.. IP)。在启用网桥的 vbox 上进行了测试。有没有指定网络接口的有效方法?我的要求是服务器和客户端独立存在于同一个局域网上。在服务器上设置 ORBInitialHost 属性没有做任何事情。
ssl - Websphere 自由的 iiops 端口 [版本 21.0.0.4]
我正在使用 iiop 协议在独立的远程 Java 客户端和 Websphere Liberty Server 之间进行通信。我想使用自签名证书在 ssl 上使用 iiop。
我已经使用相关证书创建了密钥库和信任库,并适当地更新了 server.xml,但是当我启动自由服务器时,它无法侦听 iiops 端口 9402,远程 java 客户端将使用该端口通过 ssl 使用 iiop 进行通信。netstat 输出显示以下活动端口:http(9080)、https(9443)、iiop(2809),但未列出 iiops 端口 9402。
我的 server.xml 启用了 transportSecurity-1.0 和 ssl-1.0 功能。端点配置如下所示:
完整的 server.xml:
启动日志:
spring - Spring远程EJB没有解析Liberty上的bean
我有一个 EJB 服务器在一台 Liberty 服务器上运行,而客户端在另一台服务器上运行。
如果我使用下面的代码手动查找远程 EJB,我可以访问 EJB。
上述工作按预期工作,它能够调用在其他服务器实例上运行的远程 EJB 并按预期工作。
我正在尝试在我的@Controller
类中使用 Spring,并通过注释@EJB
或引用 EJB@Autowired
mvc-调度程序-servlet.xml
自由服务器.xml
当我打印出 testRemoteEJB 对象时,它返回一个com.sun.proxy.$Proxy41
对象,当我尝试调用方法函数时,我得到以下异常
所以很明显远程查找没有解决,但我很困惑,因为我知道我可以手动访问它,所以连接字符串应该是有效的。
如果有什么我可能会丢失?
这最初与传统的 WAS 一起使用,但不适用于 Liberty