Skip to content

LeonidKrutovsky/JavaEExample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 

Repository files navigation

JavaEExample

Для запуска примера требуется:
Склонировать проект к себе на компьютер: git clone https://github.com/krutovsky/JavaEExample.git
В конфигурационном файле */JavaEExample/JavaWebExample/src/main/resources/config.yml надо настроить пути к БД, файлам и к рабочим папкам:

dbConfig:
  databaseUrl: jdbc:mysql://localhost:3306/test
  password: '1'
  user: root
jsondataPath: /opt/tomcat/jsondata.txt
logFilePath: /opt/tomcat/log.log
mainDirPath: /opt/tomcat

В папке mainDirPath будут созданы папки prepare и work.
В качестве БД я использовал mysql. Если вы используете другую базу, вам надо добавить в pom.xml файл зависимость для коннектора вашей БД, например для postgresql:

<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.1.4</version>
</dependency>

Если вы решите править конфигурационный файл после сборки проекта, то его можно найти в папке */target/classes

Что бы собрать проект нужно установить maven.
В папке с файлом pom.xml надо набрать mvn package. После установки всех зависмостей и сбора проекта в папке target можно будет увидеть файл JavaWebExample-1.0.war.
Деплой производить стандартными средставми вашего контейнера сервлетов. На tomcat можно зайти в /manager и задеплоить из стандартного меню, либо закинуть архив в CATALINA_HOME/webapps и рестартануть tomcat.
Если приложение не создает папок и файлов в mainDirPath попроуйте настроить права вашего контейнера сервлетов.

Реализовано:
Веб страница просмотра и редактирования справочника Места работы, а так же просмотра справочника Телефонная книга.
Поиск по полям справочника места работы.
Форма заполнения справочника телефонная книга.
Валидация данных формы(HTML + JS).
Кнопка clear удаляет все файлы из папки prepare.
Кнопка send читает все файлы из папки prepare, удаляет их, записывает содержимое в файл в папку work и создает пустой файл флаг.
Добавлена JSON schema. В ней не делается валидация года рождения, потому что я не нашел как динамически подставлять текущий год в схему. И сама идея постоянно меняющейся схемы меня несколько смущает.

При инициализации второго сервлета запускается маршрут camel, который проверяет наличие файлов и done-файлов в папке work, удаляет файлы маркеры, файлы с содержимым проверяет по json схеме и еще условиям, которые я не смог сделать через схему. Записи, прошедшие валидацию обогащаются полем место работы. Получившиеся записи отправляются в БД в таблицу Pnonebook. Работа с БД реализована уже готовым и протестированным к этому моменту инструментом из первой части задания ORMLiteUtils. Не стал делать стандартными средствами Apache camel потому что тогда пришлось бы либо переехать с ormlite на hibernate либо переехать на JPA аннотации для ormlite (если я правильно понял возможности camel). Посчитал этот момент не таким важным. В качестве логера используется Logbackы

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published