Подключение к удаленному EJB Glassfish - PullRequest
1 голос
/ 27 марта 2012

Приложение, над которым я сейчас работаю, должно войти в фазу перед выпуском.

На этом этапе компоненты приложения на стороне сервера должны быть развернуты на виртуальных машинах Amazon, тогда как приложение на стороне клиентаостается на компьютере пользователя.

Это приложение подключается к серверу, используя JNDI и RMI для вызова удаленных методов EJB.Это хорошо работает в localhost и локальной сети.

Но при попытке подключиться к хосту Amazon приложение зависает в методе context.lookup.то есть контекст JNDI может быть получен с этого удаленного сервера, но поиск в этом контексте невозможен.

Что можно сделать, чтобы получить хорошую диагностику при сбое?

Есть лижурналы, которые могут быть сгенерированы для рукопожатия RMI / что угодно?

Есть ли способ на стороне сервера увидеть, действительно ли запрос проходит через Интернет к серверу?

Также обратите внимание, я 'мы уже включили использование публичного IP на моем сервере Glassfish ( с использованием рекомендованной процедуры Oracle ).

EDIT В соответствии с быстрым захватом 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).

IP в запросе (172.27.63.145) - это мой IP в локальной сети моей компании.Из того, что я понимаю о связи через itnernet, это должен быть публичный IP моей компании, нет?Как я могу сделать клиент Glassfish известным и использовать этот IP?

1 Ответ

0 голосов
/ 27 марта 2012

Диагностика получена четко: клиент, который подключается из локальной сети к серверу, отправляет свой собственный частный адрес внутренней сети на сервер, на который сервер не может переслать ответ. Как следствие, сервер не отвечает, следовательно, зависание.

...