java.lang.RuntimeException: wXb6Vnl31u :: Ошибка для HTML= 001 003 004 005 006 007 008 009
010

IN Migration 011 Kafka BoiInputFieldBo Example

012 013

Существует два способа IN миграции вложенных бизнес-объектов 014 через Kafka: стандартный и 015 рекурсивный.

016 017 030 031

Ниже вы можете увидеть примеры каждого подхода:

032 033

Стандартный способ

034 035

1) Добавляем школу

036 037
038  {
039    "recordId": "random-value",
040    "externalId": "MVLFsYhLv5eVbkXE",
041    "boCode": "school",
042    "fields": [
043      {
044        "code": "number",
045        "apiValue": "133"
046      },
047      {
048        "code": "name",
049        "apiValue": "среднеобразовательная школа"
050      }
051    ],
052    "boFields": [
053      {
054        "fieldCode": "class",
055        "toBoCode": "class",
056        "toFieldCode": "class_id",
057        "apiValue": "1"
058      }
059    ],
060    "state": "ACTUAL"
061  }
062  
063  
064 065

2) Добавляем класс

066 067
068  {
069    "recordId": "random-value",
070    "externalId": "MVLFsYhLv5eVbkXE",
071    "boCode": "class",
072    "fields": [
073      {
074        "code": "number",
075        "apiValue": "9G"
076      },
077      {
078        "code": "name",
079        "apiValue": "Класс №"
080      },
081      {
082        "code": "class_id",
083        "apiValue": "1"
084      }
085    ],
086    "boFields": [
087      {
088        "fieldCode": "student",
089        "toBoCode": "student",
090        "toFieldCode": "student_id",
091        "apiValue": "1"
092      },
093      {
094        "fieldCode": "student",
095        "toBoCode": "student",
096        "toFieldCode": "student_id",
097        "apiValue": "2"
098      }
099    ],
100    "state": "ACTUAL"
101  }
102  
103  
104 105

3) Добавляем студентов

106 107
108  {
109      "recordId": "random-value",
110      "externalId": "7fq@eZ1kpg0iwHVV",
111      "boCode": "student",
112      "fields": [
113          {
114              "code": "name",
115              "apiValue": "Армэн"
116          },
117          {
118              "code" : "surname",
119              "apiValue" : "Турсынбек"
120          },
121          {
122              "code" : "student_id",
123              "apiValue" : "1"
124          }
125      ],
126      "state": "ACTUAL"
127  }
128  
129  
130 131
132  {
133      "recordId": "random-value",
134      "externalId": "Iqn5iMZcg~M1I5o0",
135      "boCode": "student",
136      "fields": [
137          {
138              "code": "name",
139              "apiValue": "Азамат"
140          },
141          {
142              "code" : "surname",
143              "apiValue" : "Утелхан"
144          },
145          {
146              "code" : "student_id",
147              "apiValue" : "2"
148          }
149      ],
150      "state": "ACTUAL"
151  }
152  
153  
154 155

Рекурсивный способ

156 157
    158
  1. Добавляем Школу -> Вкладываем класс -> Вкладываем 159 учеников
  2. 160
161 162
163  {
164    "recordId": "random-value",
165    "externalId": "MVLFsYhLv5eVbkXE",
166    "boCode": "school",
167    "fields": [
168      {
169        "code": "number",
170        "apiValue": "133"
171      },
172      {
173        "code": "name",
174        "apiValue": "среднеобразовательная школа"
175      }
176    ],
177    "boFields": [
178      {
179        "fieldCode": "class",
180        "boiInput": {
181          "recordId": "random-value",
182          "externalId": "MVLFsYhLv5eVbkXE",
183          "boCode": "class",
184          "fields": [
185            {
186              "code": "number",
187              "apiValue": "9G"
188            },
189            {
190              "code": "name",
191              "apiValue": "Класс №"
192            },
193            {
194              "code": "class_id",
195              "apiValue": "1"
196            }
197          ],
198          "boFields": [
199            {
200              "fieldCode": "student",
201              "boiInput": {
202                "recordId": "random-value",
203                "externalId": "7fq@eZ1kpg0iwHVV",
204                "boCode": "student",
205                "fields": [
206                  {
207                    "code": "name",
208                    "apiValue": "Армэн"
209                  },
210                  {
211                    "code": "surname",
212                    "apiValue": "Турсынбек"
213                  },
214                  {
215                    "code": "student_id",
216                    "apiValue": "1"
217                  }
218                ],
219                "boFields": [],
220                "state": "ACTUAL"
221              }
222            },
223            {
224              "fieldCode": "student",
225              "boiInput": {
226                "recordId": "random-value",
227                "externalId": "Iqn5iMZcg~M1I5o0",
228                "boCode": "student",
229                "fields": [
230                  {
231                    "code": "name",
232                    "apiValue": "Азамат"
233                  },
234                  {
235                    "code": "surname",
236                    "apiValue": "Утелхан"
237                  },
238                  {
239                    "code": "student_id",
240                    "apiValue": "2"
241                  }
242                ],
243                "state": "ACTUAL"
244              }
245            }
246          ],
247          "state": "ACTUAL"
248        }
249      }
250    ],
251    "state": "ACTUAL"
252  }
253  
254  
255
256 257 at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:80) at kz.greetgo.md_reader.core.MdConverter.prepareHtmlFileFrom(MdConverter.java:136) at kz.greetgo.md_reader.core.MdConverter.convert(MdConverter.java:208) at kz.greetgo.md_reader.controller.RenderController.downloadToc(RenderController.java:360) at kz.greetgo.md_reader.controller.RenderController.request(RenderController.java:108) at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at kz.greetgo.md_reader.interceptors.TextReplaceFilter.doFilter(TextReplaceFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1397) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1333) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:732) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2101) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2064) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:299) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1165) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:71) ... 48 more