These are chat archives for springjazzy/GIS_JKH_Integration

7th
Apr 2016
Vladimir
@asnetsoft
Apr 07 2016 03:00
@VVi3ard С пенями вообще непонятно, согласно 370 и 354 постановлению, штрафы и неустойки должны выставляться вообще отдельными счетами :)
shsa
@shsa
Apr 07 2016 03:32
у кого-нибудь получилось создать дом в новой версии? я все еще получаю либо внутреннюю ошибку, либо ошибку доступа к данным
Анатолий
@Anat56
Apr 07 2016 03:34
Дом получилось, но до этого ручками в ЛК завел договор управления. При добавлении дома ошибка есть, но дом заносится
ru.lanit.hcs.integration.common.exception.XmlValidationException: Line: 22. Column: 9. Message: cvc-complex-type.2.4.b: The content of element 'ns5:ImportHouseUO' is not complete. One of '{"http://dom.gosuslugi.ru/schema/integration/8.7.0.3/house-management/":EGRPRelationshipStatus}' is expected.
Ошибка скорее всего уже при формировании ответа сервером, т.к. ругается на элемент ответа
договоры и уставы через api не работают, договор ресурсоснабжения не пробовал пока
Vladimir
@asnetsoft
Apr 07 2016 04:13
@shsa importHouseUORequest на обновление нормально отрабатывает
@shsa На создание дома не получается проверить, т.к. создание ДУ улетает в ошибку (((
Vladimir
@asnetsoft
Apr 07 2016 05:01
@Anat56 Тоже самое, ошибка с доступом данных, но дом создан
Vershinin Sergey
@versh23
Apr 07 2016 05:47
через ЛК у вас получилось лицевой создать? у меня выдает какую то ошибку и сразу закрывается
Denis Ilyushchenko
@gizmo75rus
Apr 07 2016 06:07
@Anat56 в элементе ImportHouseUO не заполнен EGRPRelationshipStatus
MrBlackJack
@MrBlackJack
Apr 07 2016 06:36
This message was deleted
Syber79
@Syber79
Apr 07 2016 06:42
@Anat56 в элементе ImportHouseUO не заполнен EGRPRelationshipStatus
This message was deleted
то же самое для рсо
Denis Ilyushchenko
@gizmo75rus
Apr 07 2016 06:46
@Syber79 Статус связи объекта с ЕГРП: (C)reated - найдена запись в ЕГРП, доля(и)/обремененения(и) создана(ы) (D)roped - связь с долей/обремененением разорвана (N)o relationship - связь с долей/обремененением не устанавливалась
  1. Перед началом сохранения сведений о доме выполняются общие контроли, в т.ч. проверка, что все переданные КН в объектах дома есть в ГКН; или все условные номера/номера и даты регистрации прав/обременений для связывания с ЕГРП есть в ЕГРП; при этом если хотя бы один КН для ГКН не найден, то сведения по всему дому не сохраняются (интеграция);
MrBlackJack
@MrBlackJack
Apr 07 2016 06:58
Доброе утро всем! Я сравнительно недавно начал разрабатывать интеграционное решение, прочитал всю ветку форума, чат, и бегло посмотрел решение, которое springjazzy выкладывал (спасибо ему за это огромное!), созрели несколько вопрос...Просьба ответьте хотя бы кратко (для тех, кто в теме) 1) Как я понял (из решение springjazzy) были использованы библиотеки Xades и КриптоПро.NET...Правильно ли я понял, что эти библиотеки были использованы для подписи сообщения? 2) Правильная цепочка взаимодействия выглядит следующим образом: Proxy классы (сгенерированные на основание wsdl файлов) -> КриптоПро.NET + Xades (подпись сертификатом поставщика данных) -> МагПроКриптотунель (для создания безопасного канала, подписи транспортным сертификатом и шифрование) ? Вместо КриптоПро.NET + Xades можно использовать утилиту (от Ланита СКЗИ КриптоПро CSP + СКЗИ Trusted Java 2.0), которую советовали они в своих методических рекомендациях? Это решение вообще актуально, если интеграция написана на c#? 3) Сообщение подписывается два раза: один раз сертификатом отправителя (поставщиком) и транспортным сертификатом? Заранее всем спасибо за ответы)
ndbn
@ndbn
Apr 07 2016 07:05
1) Xades - формат/стандарт подписи, КриптоПро.NET - обёртка для КриптоПро.CSP, там ещё BouncyCastle для экранирования используется.
2) Подписывать нужно не всё (сервисы с "Common " в имени не требуют подписи в принципе, это открытая часть), МагПроКриптотунель не обязателен, в теме форума есть пример, там шифрование осуществляет непосредственно WCF
3) транспортным сертификатом шифруется канал(TLS), это не подпись
MrBlackJack
@MrBlackJack
Apr 07 2016 07:11
Ясно, спасибо за подробные ответы
VVi3ard
@VVi3ard
Apr 07 2016 07:12
@MrBlackJack рекомендую пока не заниматься вопросами подписи, на СИТ можно работать без нее
ближе к 15.04 Ланит предоставит исходники приложения на C#
на основании которых можно будет доработать свое решение
shsa
@shsa
Apr 07 2016 07:14
вот будет смеху, если они представят тот же Xades от @springjazzy
MrBlackJack
@MrBlackJack
Apr 07 2016 07:14
ок, будет ли там решен вопрос подписания, в семинаре они как-то расплывчато отвели про функционал)
VVi3ard
@VVi3ard
Apr 07 2016 07:15
Да, это решение будет работать с порталом ГИС ЖКХ
на семинаре они обходили вопрос "Тунеля"
MrBlackJack
@MrBlackJack
Apr 07 2016 07:15
@shsa что-то мне кажется, что так и будет, но в общем посмотрим тогда, как выложат...Спасибо всем за уточнения и ответы
@VVi3ard ок, хорошо, если так
ndbn
@ndbn
Apr 07 2016 07:45

Не пойму, NsiCommon сломался, заполняю поле:

var q = new exportNsiListRequest()
                {
                    ListGroup = ListGroup.NSI
                };

а в xml оно не попадает:

<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <exportNsiListRequest xmlns="http://dom.gosuslugi.ru/schema/integration/8.7.0.3/nsi-common/" />
</s:Body>
Vershinin Sergey
@versh23
Apr 07 2016 07:46
 var request = new NsiCommonService.exportNsiListRequest()
        {
            ListGroup = NsiCommonService.ListGroup.NSI,
            ListGroupSpecified = true
        };
ndbn
@ndbn
Apr 07 2016 07:47
Спасибо, проглядел это поле

И в хидер приходится <IsOperatorSighnature>true</IsOperatorSighnature>
дописывать

Нормально, что для этого сервиса такое поле не появилось в wsdl?

Syber79
@Syber79
Apr 07 2016 08:16
Это поле появилось в описалове RequestHeader
не обязательное, но без него не работает ничего
Vershinin Sergey
@versh23
Apr 07 2016 08:24
@ndbn конкретно для этого сервиса орно не нужно
Denis Ilyushchenko
@gizmo75rus
Apr 07 2016 08:58
HouseManagement метод ImportHouseUO элемент BasicCharacteristicts OKTMO Что указывать?
ndbn
@ndbn
Apr 07 2016 08:59
@versh23 ага, спасибо, я не на тот endpoint слал сообщение вообще...
Если кто то использует мой батник для конвертации, последняя и исправленная версия:
@echo off
chcp 65001>nul
setlocal enabledelayedexpansion

:defaultconfig
set SVCUTIL="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\SvcUtil.exe"
set OUTDIR=out

if not exist %OUTDIR% ( 
    echo Создание каталога %OUTDIR%
    mkdir %OUTDIR%
)

if exist %OUTDIR%\*.* (
    echo Очистка каталога %OUTDIR%
    del /S /Q %OUTDIR%\*.*
)

call :genFile Bills bills
call :genFile DeviceMetering device-metering
call :genFile Disclosure disclosure
call :genFile Fas fas
call :genFile HouseManagement house-management
call :genFile Infrastructure infrastructure
call :genFile Inspection inspection
call :genFile Licenses licenses
call :genFile NsiCommon nsi-common
call :genFile Nsi nsi
call :genFile OrganizationsRegistryCommon organizations-registry-common
call :genFile OrganizationsRegistry organizations-registry
call :genFile Payment payment
call :genFile Services services

:exit
exit /b 0

:genFile
::%1 - ServiceName
::%2 - Service file part name

if exist hcs-%2-service-?.?.?.?.wsdl (
    %SVCUTIL% hcs-%2-service-?.?.?.?.wsdl *.xsd /mc /syncOnly /directory:out /noConfig /noLogo /n:*,Gis.%1Service /out:%1Service.cs
)

if exist hcs-%2-service-async-?.?.?.?.wsdl (
   %SVCUTIL% hcs-%2-service-async-?.?.?.?.wsdl *.xsd /mc /syncOnly /directory:out /noConfig /noLogo /n:*,Gis.%1Service.Async /out:%1ServiceAsync.cs
) 

exit /b 0
savelyevMalahitsoft
@savelyevMalahitsoft
Apr 07 2016 09:44
у кого-то возникала ошибка "importHouseUORequest не ожидался. Используйте атрибут XmlInclude или SoapInclude для задания типов, которые не известны как статические" при вызове метода importHouseUOData?
ndbn
@ndbn
Apr 07 2016 09:56
@savelyevMalahitsoft по описанию похоже на ошибку в xml, типа пропущенной кавычки или символов ">" "<"
Syber79
@Syber79
Apr 07 2016 10:10
Что то не выходит каменный цветок с добавлением квартир...
<soap:Fault>
  <faultcode>soap:Server</faultcode>
  <faultstring>FMT001300: Line: 1. Column: 31394. Message: cvc-identity-constraint.4.3: Key 'RSO_referEntranceNumKey' with value '1' not found for identity constraint of element 'ApartmentHouse'.
</faultstring>
<detail>
<ns4:Fault>
<ns4:ErrorCode>FMT001300</ns4:ErrorCode>
<ns4:ErrorMessage>Line: 1. Column: 31394. Message: cvc-identity-constraint.4.3: Key 'RSO_referEntranceNumKey' with value '1' not found for identity constraint of element 'ApartmentHouse'.
</ns4:ErrorMessage>
<ns4:StackTrace>ru.lanit.hcs.integration.common.exception.SoapFaultException: ru.lanit.hcs.integration.common.exception.XmlValidationException: Line: 1. Column: 31394. Message: cvc-identity-constraint.4.3: Key 'RSO_referEntranceNumKey' with value '1' not found for identity constraint of element 'ApartmentHouse'.
at ru.lanit.hcs.integration.common.spring.processor.ValidationProcessor.process(ValidationProcessor.java:94)
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:111)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:82)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
at org.apache.camel.component.cxf.CxfConsumer$1.syncInvoke(CxfConsumer.java:137)
at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:78)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
at org.apache.catalina.core.StandardContextValve.invoke(Sta
Vershinin Sergey
@versh23
Apr 07 2016 10:11
а подъезды заведены?
Syber79
@Syber79
Apr 07 2016 10:11
да, 2 подъезда
Vershinin Sergey
@versh23
Apr 07 2016 10:12
@Syber79 о, это вы значит завели договор ресурсоснабжения по этоум дому?
Syber79
@Syber79
Apr 07 2016 10:13
Завел договор оферту
Denis Ilyushchenko
@gizmo75rus
Apr 07 2016 13:27
ImportContract
Код ошибки:EXP001000 Описание:Внутренняя ошибка
StackTrace:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.rangeCheck(ArrayList.java:635)
        at java.util.ArrayList.get(ArrayList.java:411)
        at ru.lanit.hcs.integration.housemanagement.spring.service.impl.HouseManagementResponseServiceImpl.toImportResult(HouseManagementResponseServiceImpl.java:85)
        at ru.lanit.hcs.integration.housemanagement.spring.service.impl.HouseManagementResponseServiceImpl.toImportResult(HouseManagementResponseServiceImpl.java:70)
        at ru.lanit.hcs.integration.housemanagement.spring.service.impl.HouseManagementResponseServiceImpl.toImportResult(HouseManagementResponseServiceImpl.java:27)
        at ru.lanit.hcs.integration.housemanagement.spring.processor.ImportContractProcessor.process(ImportContractProcessor.java:59)
        at ru.lanit.hcs.integration.housemanagement.spring.processor.ImportContractProcessor.process(ImportContractProcessor.java:34)
        at ru.lanit.hcs.integration.common.spring.mdp.OperationProcessorInvokerMDP.process(OperationProcessorInvokerMDP.java:292)
        at ru.lanit.hcs.integration.common.spring.mdp.OperationProcessorInvokerMDP.internalOnMessage(OperationProcessorInvokerMDP.java:174)
        at ru.lanit.hcs.integration.common.spring.mdp.OperationProcessorInvokerMDP.onMessage(OperationProcessorInvokerMDP.java:93)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:685)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:623)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:591)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:308)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1142)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1134)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1031)
        at java.lang.Thread.run(Thread.java:745)
)))
StackTrace:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Vershinin Sergey
@versh23
Apr 07 2016 13:30
А если есть юр лица в доме, мы им начисляем, выставляем СФ и тд - нужно как то их в ГИС заносить?)
Константин
@LTramp
Apr 07 2016 13:30
Добрый вечер коллеги. Кто в wcf шарит, подскажите как можно перехватить адрес на который отправляется запрос. в BeforeSendRequest не нашел натой воможности (идеально бы было в нем)
нашел - channel.RemoteAddress под конец рабочего дня тупняк