010  
Настройка рабочего места программиста
011  
012  
1. Предварительная подготовка
013  
014  
015  - 
016  
Если у вас Ubuntu 20.04, то делаем следующее:
017  
018  
019  - устанавливаем
020  дополнительное ПО
 
021  
022  - настраиваем
023  докер
 
024  
025   
026  
027  - 
028  
Если у вас Fedora 35+, то делаем следующее:
029  
030  
031  - устанавливаем
033  дополнительное ПО
 
034  
035  - 
037  устанавливаем docker
 
038  
039  - настраиваем
040  докер
 
041  
042   
043  
044  
045  
2. Настраиваем доступ к проектам по ключам-SSH
046  
047  
!!!ВНИМАНИЕ!!!: тильда(~) - это домашняя
048  директория пользователя
049  
050  
Заходим в папку ~/.ssh/ и смотрим есть ли в ней
051  файлы id_ed25519, id_ed25519.pub
052  
053  
Если файлов нет, то запускаем команду:
054  
055  
056  ssh-keygen -t ed25519
057  
058  
059  
060  
061  
062  
И всё время нажимаем Enter пока не закончится команда -
063  вышеуказанные файлы должны появиться
064  
065  
Далее заходим по адресу: http://gitlab.greetgo/-/profile/keys
067  
068  
И в большое поле Key вставляем содержимое файла
069  ~/.ssh/id_ed25519.pub
070  
071  
072  !!!ВНИМАНИЕ!!! убедитесь чтобы у файла было
073  расширение .pub - оно обозначает, что это публичный
074  ключ. Другой файл - приватный ключ - его показывать НЕЛЬЗЯ
075  (никогда и ни кому)
076  
077  
078  
Нажимаем кнопку Add Key
079  
080  
3. Загружаем проект MyBPM из
081  репозитория и открываем его в Intellij IDEA
082  
083  
Проект находиться по адресу: http://gitlab.greetgo/mybpm/mybpm.server
085  
086  
В Intellij IDEA выбираем File -> New -> Project From
087  Version Control...
088  
089  
И указываем URL: `git@gitlab.greetgo:mybpm/mybpm.server.git`
091  
092  
Запоминаем, где будет находиться проект, и нажимаем волшебную
093  кнопку.
094  
095  
Дальше Intellij IDEA скачает репозиторий и начнёт долго
096  подгружать кучу библиотек.
097  
098  
4. Подготовка окружения сервера отладки
099  
100  
Окружение разворачивается с помощью docker-compose, для этого
101  необходимо:
102  
103  
104  - 
105  
в проекте зайти в директорию mybpm_debug_env
106   
107  
108  - 
109  
и запустить один из двух скриптов:
110   
111  
112  - 
113  
или скрипт инициации окружения для отладки с пустыми БД, но
114  пригодными для работы
115  
116  bash 002-recreate.bash
117   
118  
119  - 
120  
или скрипт инициации окружения для отладки с тестовыми
121  данными
122  
123  bash 001-recreate-load-test-data.bash
124   
125  
126  
127  
6. Запуск сервера отладки
128  
129  
Для запуска сервера отладки используя Intellij Idea необходимо
130  открыть класс:
131  
132  
133  kz.greetgo.mybpm.server.debug.launcher.DebugServer
134  
135  
136  
137  
138  
139  
И запустить его как Java Application.
140  
141  
Если же есть необходимость запустить сервер без IDE, то в
142  терминале нужно зайти в директорию проекта и запустить команду:
143  
144  
145  ./gradlew launchDebugServer
146  
147  
148  
149  
150  
151  
После того как появиться сообщение:
152  
153  
154   2022-01-14T10:54:26.223          k.g.m.s.d.l.DebugServer INFO  Started DebugServer in 9.866 seconds 
155    JVM running for 10.453
156  
157  
158  
159  
160  
161  
Можно подключаться к серверу - он готов и функционирует.
162  
163  
Остановить сервер можно горячей клавишей: Ctrl+C
164  
 
165  
166  
	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.GeneratedMethodAccessor7.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