Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для lamaundercover
3 / 3 / 1
Регистрация: 15.08.2016
Сообщений: 149

В элементарном RemoteService ошибка object already exported

12.01.2017, 17:53. Показов 1327. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Возникает ошибка при запуске:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
java.rmi.server.ExportException: object already exported
    at sun.rmi.transport.ObjectTable.putTarget(ObjectTable.java:189)
    at sun.rmi.transport.Transport.exportObject(Transport.java:106)
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:260)
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411)
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147)
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:212)
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383)
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:320)
    at JHF_TESTS_RMIremoteImpl_636.main(JHF_TESTS_RMIremoteImpl_636.java:18)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Локальный сервер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import java.util.Calendar;
import java.util.Date;
 
public class JHF_TESTS_RMIremoteImpl_636 extends UnicastRemoteObject implements JHF_TESTS_RMIremoteInterface_636 {
    public JHF_TESTS_RMIremoteImpl_636() throws RemoteException{};
    public static void main(String[] args) {
        if(System.getSecurityManager() == null){
            System.setSecurityManager(new SecurityManager());
        }
        try {
            JHF_TESTS_RMIremoteInterface_636 serverService = new JHF_TESTS_RMIremoteImpl_636();
            JHF_TESTS_RMIremoteInterface_636 stub = (JHF_TESTS_RMIremoteInterface_636) UnicastRemoteObject.exportObject(serverService, 0);
            Registry registry = LocateRegistry.getRegistry();
            registry.rebind("servieName", stub);
        }
        catch (Exception ex){ex.printStackTrace();}
        /*other variant
        try {
            JHF_TESTS_RMIremoteInterface_636 service = new JHF_TESTS_RMIremoteImpl_636();
            Naming.rebind("serviceName",service);
        }
        catch (Exception ex){ex.printStackTrace();
        }*/
    }
    public Date rmiTest(){Date date = Calendar.getInstance().getTime();
        return date;
    }
}
Клиент:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
 
public class JHF_TESTS_RMIclient_636 {
        public static void main(String[] args)
    {
        if(System.getSecurityManager() == null){
            System.setSecurityManager(new SecurityManager());
        }
        try {
            Registry registry = LocateRegistry.getRegistry(args[0]);
                JHF_TESTS_RMIremoteInterface_636 stub = (JHF_TESTS_RMIremoteInterface_636) registry.lookup("serviceName");
            System.out.println(stub.rmiTest());
        }
        catch (Exception ex){ex.printStackTrace();}
                //new JHF_TESTS_RMIclient_636().Gstart();
    }
   /* another variant
    public void Gstart(){
        try {
            JHF_TESTS_RMIremoteInterface_636 service = (JHF_TESTS_RMIremoteInterface_636) Naming.lookup("rmi://127.0.0.1/serviceName");
            System.out.println(service.rmiTest());
        }
        catch (Exception ex){ex.printStackTrace();}
    }*/
}
Общий интерфейс:
Java
1
2
3
4
5
6
7
8
import java.io.Serializable;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Date;
 
interface JHF_TESTS_RMIremoteInterface_636 extends Remote, Serializable{
    public Date rmiTest() throws RemoteException;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2017, 17:53
Ответы с готовыми решениями:

Unity 2D | Ошибка NullReferenceException: Object reference not set to an instance of an object
При нажатии кнопки стрелять (игра на Android) выдает ошибку: NullReferenceException: Object reference not set to an instance of an...

Ошибка на ровном месте: Object reference not set to an instance of an object
Программа на VS2010 C# winforms Программа работала, сделал релиз, начал тестить на других компах, естественно проставил везде net4 на...

Unity ошибка NullReferenceException: Object reference not set to an instance of an object
Сам новичок в C# и Unity. Много чего не знаю. Подскажите, пожалуйста. Столкнулся с ошибкой: NullReferenceException: Object reference not...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.01.2017, 23:27
http://bfy.tw/9ROA
неужели сложно?
0
 Аватар для lamaundercover
3 / 3 / 1
Регистрация: 15.08.2016
Сообщений: 149
13.01.2017, 11:58  [ТС]
Спасибо с утра покопался в гугле, удалось чуть лучше понять дерево ошибок.

Но сложно разобраться, нужно использовать первый(тот который скрыт в коде за /**/) или второй вариант (тот который активен в коде):
1) судя по поиску, в активном (втором) варианте нужно избавиться от использования одновременно extent Unicast и экспорта stub, однако в этом случае возникает ошибка
Java
1
java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve")
если же вообще не создавать SecurityManager, то возникает другая ошибка
Java
1
Connection refused to host:
2) в случае использования второго варианта (скрытого в коде за /**/), когда мы вручную создаем stub (rmic) и запускаем start rmiregistry, программа не передает стаб (т.е. программа работает только если клиент и сервер расположены в одной папке на сервере =/), возникает ошибка:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
    java.lang.ClassNotFoundException: JHF_TESTS_RMIremoteImpl_636_Stub (no security manager: RMI class loader disabled)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at java.rmi.Naming.lookup(Naming.java:101)
    at JHF_TESTS_RMIclient_636.Gstart(JHF_TESTS_RMIclient_636.java:24)
    at JHF_TESTS_RMIclient_636.main(JHF_TESTS_RMIclient_636.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: JHF_TESTS_RMIremoteImpl_636_Stub (no security manager: RMI class loader disabled)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:396)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:186)
    at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)
    at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:219)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
    ... 9 more
Добавлено через 12 минут
P.S. Резюмирую: работает вариант (скрытый за /**/) лишь в случае, если вручную скопировать скомпилированный опять таки вручную stub в папку клиента.

Пожалуйста, помогите сделать так, чтобы программа все-таки работала как Remote!
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.01.2017, 12:16
lamaundercover, создавайте темы в подходящих разделах. Последнее предупреждение. В след. раз получите карту. Не первый день на форуме.
0
 Аватар для lamaundercover
3 / 3 / 1
Регистрация: 15.08.2016
Сообщений: 149
13.01.2017, 15:29  [ТС]
Извините, постараюсь запомнить что нельзя в общий котел и буду создавать в подразделах, но именно по этой теме я сомневался в какой раздел создать, то ли на Java и сети, то ли в SE/EE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2017, 15:29
Помогаю со студенческими работами здесь

Ошибка времени выполнения: Object reference not set to an instance of an object
Программа должна выводить на экран двоичное представление введённого числа. При этом обязательно нужно использовать массив boolean. После...

Ошибка времени выполнения: Object reference not set to an instance of an object
Делал задачу begin 1 в paskalABC.net . Program aaaaaalegko; uses pt4; var a,p:real; begin Task('Begin1'); readln(a); ...

Ошибка System.NullReferenceException : Object reference not set to an instance of an object
Совсем недавно начал учить C# . Наткнулся на ресурс codewars,где нужно по условию написать код и чтобы он прошел тесты. Код проходит 4 из 5...

Ошибка времени выполнения: Object reference not set to an instance of an object
Есть код - в TP он нормально проходит компиляцию, а вот в PABC.net выдает ошибку - видимо я не понимаю каких то нюансов в различии TP и...

Ошибка: System.NullReferenceException: 'Object reference not set to an instance of an object'
interface Monitor { double Diagonal { get; set; } int Resolution { get; set; } int Price_monitor { get;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru