вопрос про подключение через j-interop
От: Sabroza  
Дата: 12.05.11 22:04
Оценка:
Добрый день,

Пытаюсь написать небольшой opc клиент на java с использованием библиотеки utgard.
Помимо utgard подключил к проекту j-interop.

Код приложения достаточно прост:
AutoReconnectController autos = null;
JISystem.setAutoRegisteration(true);
ConnectionInformation ci = new ConnectionInformation ();
ci.setProgId("Matrikon.OPC.Simulation.1");
ci.setUser("Admin");
ci.setPassword("212");
final Server server = new Server ( ci, Executors.newSingleThreadScheduledExecutor());
autos = new AutoReconnectController(server);

try{
autos.connect();
Group group = server.addGroup("...");
...

Но при запуске возникает ошибка:
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC0000034
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:115)
at org.jinterop.dcom.core.JIProgId.getIdFromWinReg(JIProgId.java:130)
at org.jinterop.dcom.core.JIProgId.getCorrespondingCLSID(JIProgId.java:162)
at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:413)
at org.openscada.opc.lib.da.Server.connect(Server.java:123)
at org.openscada.opc.lib.da.AutoReconnectController.performReconnect(AutoReconnectController.java:217)
at org.openscada.opc.lib.da.AutoReconnectController.access$3(AutoReconnectController.java:190)
at org.openscada.opc.lib.da.AutoReconnectController$1.run(AutoReconnectController.java:173)
at java.lang.Thread.run(Thread.java:619)
Caused by: jcifs.smb.SmbException: The system cannot find the file specified.
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:522)
at jcifs.smb.SmbTransport.send(SmbTransport.java:622)
at jcifs.smb.SmbSession.send(SmbSession.java:239)
at jcifs.smb.SmbTree.send(SmbTree.java:109)
at jcifs.smb.SmbFile.send(SmbFile.java:718)
at jcifs.smb.SmbFile.open0(SmbFile.java:923)
at jcifs.smb.SmbFile.open(SmbFile.java:940)
at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
at jcifs.smb.TransactNamedPipeOutputStream.<init>(TransactNamedPipeOutputStream.java:32)
at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:187)
хер
at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:92)
at rpc.Stub.attach(Stub.java:106)
at rpc.Stub.call(Stub.java:110)
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:113)
... 8 more

Не совсем понимаю на отсутствие какого файла происходит исключение (SmbException: The system cannot find the file specified).
Может кто нибудь сталкивался с подобными проблемами, пожалуйста, просьба помочь.
Re: вопрос про подключение через j-interop
От: ALER_PROG  
Дата: 14.05.11 16:14
Оценка:
Я бы продебажил код, если, конечно, есть исходники
Re: вопрос про подключение через j-interop
От: abch-98-ru Россия  
Дата: 14.05.11 16:58
Оценка: 3 (1)
не сталкивался, но стоит проверить включен ли, вообще, remote registry service
control panel/"Administrative Tools,"/"Services." Locate the Remote Registry service on the list, and click "Start this service."
Re[2]: вопрос про подключение через j-interop
От: Sabroza  
Дата: 14.05.11 21:09
Оценка:
Спасибо за отклики!
После включения remote registry service ошибка стала другой:

org.jinterop.dcom.common.JIException: Access is denied, please check whether the [domain-username-password] are correct. Also, if not already done please check the GETTING STARTED and FAQ sections in readme.htm. They provide information on how to correctly configure the Windows machine for DCOM access, so as to avoid such exceptions. [0x00000005]
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenKey(JIWinRegStub.java:197)
at org.jinterop.dcom.core.JIProgId.getIdFromWinReg(JIProgId.java:131)
at org.jinterop.dcom.core.JIProgId.getCorrespondingCLSID(JIProgId.java:162)
at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:413)
at org.openscada.opc.lib.da.Server.connect(Server.java:123)
at org.openscada.opc.lib.da.AutoReconnectController.performReconnect(AutoReconnectController.java:217)
at org.openscada.opc.lib.da.AutoReconnectController.access$3(AutoReconnectController.java:190)
at org.openscada.opc.lib.da.AutoReconnectController$1.run(AutoReconnectController.java:173)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jinterop.dcom.common.JIRuntimeException: Access is denied, please check whether the [domain-username-password] are correct. Also, if not already done please check the GETTING STARTED and FAQ sections in readme.htm. They provide information on how to correctly configure the Windows machine for DCOM access, so as to avoid such exceptions. [0x00000005]
at org.jinterop.winreg.IJIWinReg$openKey.read(IJIWinReg.java:939)
at ndr.NdrObject.decode(NdrObject.java:36)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:137)
at rpc.Stub.call(Stub.java:113)
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenKey(JIWinRegStub.java:191)
... 8 more
Re[3]: вопрос про подключение через j-interop
От: Sabroza  
Дата: 14.05.11 21:42
Оценка:
Логин пароль ввожу верные (админские), разрешения файловой системы переставил как надо, пока ничего не помогает.
Re[4]: вопрос про подключение через j-interop
От: bl-blx Россия http://yegodm.blogspot.com
Дата: 15.05.11 08:54
Оценка:
Здравствуйте, Sabroza, Вы писали:

S>Логин пароль ввожу верные (админские), разрешения файловой системы переставил как надо, пока ничего не помогает.


Родной DCOM-клиент нормально коннектится?
El pueblo unido jamás será vencido.
Re[5]: вопрос про подключение через j-interop
От: Sabroza  
Дата: 15.05.11 12:06
Оценка:
Здравствуйте, bl-blx, Вы писали:

BB>Здравствуйте, Sabroza, Вы писали:


S>>Логин пароль ввожу верные (админские), разрешения файловой системы переставил как надо, пока ничего не помогает.


BB>Родной DCOM-клиент нормально коннектится?


К сожалению, не очень представляю как это проверить. Можете подсказать?

Настройки доступа выставлял как указано в статье http://www.aggsoft.ru/asdl-dcom-opc-config-4.htm
Может я что то упускаю...
Re[6]: вопрос про подключение через j-interop
От: bl-blx Россия http://yegodm.blogspot.com
Дата: 15.05.11 14:08
Оценка:
Здравствуйте, Sabroza, Вы писали:

S>Здравствуйте, bl-blx, Вы писали:


BB>>Здравствуйте, Sabroza, Вы писали:


S>>>Логин пароль ввожу верные (админские), разрешения файловой системы переставил как надо, пока ничего не помогает.


BB>>Родной DCOM-клиент нормально коннектится?


S>К сожалению, не очень представляю как это проверить. Можете подсказать?


S>Настройки доступа выставлял как указано в статье http://www.aggsoft.ru/asdl-dcom-opc-config-4.htm

S>Может я что то упускаю...

Я просто хотел убедиться, что политики безопасности правильно настроены.
Но, коли вы строго по инструкции всё сделали, то проблема в другом.
У них на сайте нет тестового клиента, случаем?
El pueblo unido jamás será vencido.
Re[7]: вопрос про подключение через j-interop
От: Sabroza  
Дата: 15.05.11 17:55
Оценка:
Здравствуйте, bl-blx, Вы писали:

BB>Я просто хотел убедиться, что политики безопасности правильно настроены.

BB>Но, коли вы строго по инструкции всё сделали, то проблема в другом.
BB>У них на сайте нет тестового клиента, случаем?

К сожалению не нашел.
Re[4]: вопрос про подключение через j-interop
От: abch-98-ru Россия  
Дата: 16.05.11 21:21
Оценка:
S>Логин пароль ввожу верные (админские), разрешения файловой системы переставил как надо, пока ничего не помогает.
привет, ещё раз.
я небольшой спец по виндам или j-interop, но судя по стеку — разрешение должны быть на реестр, точнее read разрешение на ключ в реестре.
краткая пробежка по гуглу дала это
Run Powershell as an Administrator, then run the commandlet "Enable-PSRemoting".
попробуй. если поможет ок, если нет пробегись по j-interop форуму.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.