Networking 连接到远程Glassfish托管EJB

Networking 连接到远程Glassfish托管EJB,networking,glassfish,ejb,rmi,jndi,Networking,Glassfish,Ejb,Rmi,Jndi,我目前正在开发的应用程序开始进入预发布阶段 在此阶段,服务器端应用程序组件将部署在AmazonVMS上,而客户端应用程序保留在用户机器上 该应用程序使用JNDI和RMI连接到服务器,以调用远程EJB方法。这在本地主机和本地网络上运行良好 但是,当尝试连接到Amazon主机时,应用程序挂起了context.lookup方法。也就是说,可以从这个远程服务器获取JNDI上下文,但不能在该上下文上执行任何查找 如何才能获得故障的良好诊断 是否有可以为RMI握手/任何事情生成的日志 有没有办法在服务器端查

我目前正在开发的应用程序开始进入预发布阶段

在此阶段,服务器端应用程序组件将部署在AmazonVMS上,而客户端应用程序保留在用户机器上

该应用程序使用JNDI和RMI连接到服务器,以调用远程EJB方法。这在本地主机和本地网络上运行良好

但是,当尝试连接到Amazon主机时,应用程序挂起了context.lookup方法。也就是说,可以从这个远程服务器获取JNDI上下文,但不能在该上下文上执行任何查找

如何才能获得故障的良好诊断

是否有可以为RMI握手/任何事情生成的日志

有没有办法在服务器端查看查询是否真的通过internet到达服务器

还要注意,我已经在Glassfish服务器上启用了公共IP使用

根据服务器上的快速TCP捕获进行编辑,服务器似乎接收到带有局域网内客户机地址的客户机上下文查询,当然它不知道:

疑问是

[3/27/2012 11:05:22 AM:169]
GIOP.......(................NameService....._is_a...................
NEO................ª.......(IDL:omg.org/SendingContext/CodeBase:1.0.
...........n........172.27.63.145.ܺ....¯«Ë........e................
........... ................... ... ...........&...............(IDL:
omg.org/CosNaming/NamingContext:1.0.
答复是

[3/27/2012 11:05:22 AM:171]
GIOP.......2............NEO................0.......(IDL:omg.org/Send
ingContext/CodeBase:1.0............ô........46.137.114.67.'5....¯
«Ë........d........................... ................... .........
.....&...........!...|...............$....f............10.241.42.208
.'6.@........g..............g........default...................g....
...........+IDL:omg.org/CosNaming/NamingContextExt:1.0..............
.......10.241.42.208.'5...M¯«Ë.... ...d...  S1AS-ORB............Root
POA....TNameService............................... .................
.. ...  ...........&......
使用SmartSniff ASCII输出读取


查询172.27.63.145中的IP是我公司局域网中的IP。根据我对itnernet通信的理解,应该是我公司的局域网公共IP,不是吗?如何使Glassfish客户端udnerstand它应该使用该IP?

诊断已经明确:从LAN连接到服务器的客户端将自己的内部网络专用地址发送到服务器,而服务器无法向服务器转发任何答案。结果,服务器没有应答,因此出现了挂断