Этот проект предоставляет портал веб-интерфейса для конечных пользователей для работы с процессом утверждения кредита фиктивного Westbank. Кроме того, для целей тестирования он также включает в себя веб -сервисы, которые предоставляют необходимые бизнес -функции, используемые в процессе утверждения кредита.
Портал может быть развернут в качестве приложения ( *.war ) на веб -сервере приложений, таких как Apache Tomcat, Eclipse Jetty, Jboss Wildfly As и т. Д. Тем не менее, мы можем напрямую запустить его в командной строке.
Перейдите в папку Project и перейдите к следующей команде.
mvn jetty:runЗатем откройте веб -браузер на http: // localhost: 9999/portal для главной страницы портала.
Некоторые другие страницы для разработки/тестирования
Проверка базовой базы данных (см. com.westbank.web.DevController ): http: // localhost: 9999/portal/dev.html
Проверка списка запущенных веб -сервисов: http: // localhost: 9999/portal/services
Чтобы войти в систему в качестве персонала (менеджер, руководитель, клерк или брокер), перейдите на страницу: http: // localhost: 9999/portal/heps/login.html
Примечание: идентификатор и пароль для персонала временно указаны на странице http: // localhost: 9999/portal/dev.html
mvn -DskipTests clean package Поскольку переход на конфигурации без XML с помощью сервиса 3.0+, основная конфигурация веб-приложения- PortalWebApplicationInitializer вместо традиционного WEB-INF/web.xml .
PortalWebApplicationInitializer Сначала загружает корневой контекст и регистрирует две конфигурации PersistenceConfiguration (для доступа к данным) и ServiceConfiguration (для публикации услуг Web/SOAP)AnnotationConfigWebApplicationContext для Spring DispatcherServletAnnotationConfigWebApplicationContext Регистрирует конфигурацию MVC в WebMvcConfigurationDispatcherServlet будет обслуживать все *.html и /portal/*PortalWebApplicationInitializer также загрузит еще один сервис CXFServlet для обслуживания услуг Web/SOAP по адресу /services/* Конфигурация для Spring MVC находится в WebMvcConfiguration :
Он реализует WebMvcConfigurer и аннотируется @EnableWebMvc (эквивалентно <mvc:annotation-driven /> в Spring XML)
Это позволяет обработать сервлета по умолчанию
Он добавляет ресурсные ручки для обслуживания /resources/
Он настраивает View Resolvers для обслуживания JSP/JSTL AT /WEB-INF/view/ и для .jsp
Он настраивает MessageSource для обслуживания нескольких языков по адресу i18n/messages-XXX.properties
Другие ресурсы, такие как CSS, изображения и JavassRipts, находятся в папках src/main/webapp/[css | images | js ] .
src/main/resources/i18n/messages.properties для информации, отображаемой для клиентов, таких как уведомления о успехе и ошибках.
src/main/resources/logback.xml для Logecback
Манипуляция и стойкость данных выполняются с использованием Spring JPA / Hibernate, настроенной через PersistenceConfiguration .
@Configuration @EnableJpaRepositories , @EnableTransactionManagement , @ComponentScanjavax.sql.DataSource с помощью внедрения в основной реализации HikariDataSource of HikaricpentityManagerFactory с LocalContainerEntityManagerFactoryBeanJpaTransactionManagerDataSourceInitializer для настройки некоторых данных, используя сценарий load-user-and-role.sql Доменные организации аннотированы с конвенциями JPA в com.westbank.domain
Репозитории данных находятся в com.westbank.repository для манипулирования основными данными/объектами с использованием EntityManager
Data Services (включая некоторую бизнес -логику) находятся в com.westbank.service , работающий на вершине репозиториев
В настоящее время используемый RDBMS находится в памяти H2 для минимальной площади памяти. Тем не менее, любые другие RDBMS также могут быть использованы. Чтобы использовать другие RDBMSS, просто обратите внимание на следующие моменты:
WESTBANKDBwestbank с паролем secret и назначите этого пользователя в базу данных или используйте ваши предпочтительные значения и обновите hibernate.properties соответственноpom.xml .mvn jetty:run , чтобы проверить, работает ли веб -приложение.logback.xml для отладки. Этот проект также включает в себя некоторые веб-сервисы с использованием JAX-WS / Apache CXF для предоставления бизнес-функций, необходимых в процессе утверждения кредита. Эти интерфейсы веб-службы ( *.wsdl ) находятся в папке WEB-INF/wsdl .
|
+-- BankInformation.wsdl
+-- BankPrivilege.wsdl
+-- CreditWorthiness.wsdl
+-- LoanApprovalClosing.wsdl
+-- LoanFile.wsdl
+-- LoanContract.wsdl
+-- LoanContractSigning.wsdl
+-- LoanRisk.wsdl
+-- LoanSettlement.wsdl
+-- TaskDispatch.wsdl
|
+-- CallbackLoanContract.wsdl
+-- CallbackLoanApproval.wsdl
Плагин Apache CXF cxf-codegen-plugin Maven используется для генерации кода Java из вышеупомянутых услуг (т.е. первая разработка услуг , т.е. Сгенерированные источники Java находятся под базовым пакетом com.westbank.ws .
Плагин M2Eclipse , который поддерживает Maven в Eclipse, вызовет Apache CXF
cxf-codegen-pluginКаждый раз, когда вы импортируете этот проект в Eclipse, существующие сгенерированные вещи будут излишне перезаписаны. Таким образом, плагин в настоящее время отключен. Всякий раз, когда какой-либо WSDL изменяется, пожалуйста, включите этот плагин и выполните командуmvn generate-sourcesдля повторного генерации кода Java.
Фактическая реализация бизнес -логики каждого веб -службы находится в соответствующем классе Java с именем com.westbank.ws.impl.XXXImpl , в котором « XXX » является названием этой веб -сервисы. Чтобы изменить эти услуги, посмотрите на папку WEB-INF/wsdl . После изменения WSDL, просто запустите mvn clean generate-sources для повторного выращивания кода Java.
Конфигурация для публикации веб -служб с использованием Apache CXF и Spring представлена в ServiceConfiguration , загруженной контекстом корневого приложения. Это, в свою очередь, загружает определения бобов в ServiceBeans .
Поскольку веб -приложение работает, откройте веб -браузер по адресу http: // localhost: 9999/portal/services, чтобы просмотреть список запущенных веб -сервисов.
Для дальнейших целей тестирования и демонстрации некоторые специальные значения в логике веб-служб жестко кодируются:
com.westbank.ws.impl.BankPrivilegeImpl )com.westbank.ws.impl.BankInformationImpl )com.westbank.ws.impl.LoanRiskImpl )com.westbank.ws.impl.TaskDispatchImpl )true , в противном случае, false (см. com.westbank.ws.impl.CreditWorthinessImpl )