Este projeto fornece um portal de interface da web para os usuários finais trabalharem com o processo de aprovação do empréstimo do oeste fictício. Além disso, para fins de teste, também inclui os serviços da Web que fornecem as funções comerciais necessárias usadas pelo processo de aprovação de empréstimos.
O portal pode ser implantado como um aplicativo ( *.war ) em um servidor de aplicativos da Web, como Apache Tomcat, Eclipse Jetty, Jboss Wildfly como, etc. No entanto, podemos executá -lo diretamente na linha de comando.
Vá para a pasta do projeto e prossiga com o seguinte comando.
mvn jetty:runEm seguida, abra um navegador da web para http: // localhost: 9999/portal para a página principal do portal.
Algumas outras páginas para desenvolvimento/teste
Verificando o banco de dados subjacente (consulte com.westbank.web.DevController ): http: // localhost: 9999/Portal/dev.html
Verificando a lista de serviços da Web em execução: http: // localhost: 9999/Portal/Serviços
Para fazer login como equipe (gerente, supervisor, balconista ou corretor), acesse a página: http: // localhost: 9999/Portal/Staff/Login.html
Nota: ID e senha para a equipe estão listados temporariamente na página http: // localhost: 9999/Portal/dev.html
mvn -DskipTests clean package Ao mudar para configurações sem XML com o Servlet 3.0+, a configuração principal do aplicativo da Web é PortalWebApplicationInitializer em vez do tradicional WEB-INF/web.xml .
PortalWebApplicationInitializer primeiro carrega o contexto raiz e registra duas configurações PersistenceConfiguration (para acesso a dados) e ServiceConfiguration (para publicar serviços da Web/SOAP)AnnotationConfigWebApplicationContext para o Spring DispatcherServletAnnotationConfigWebApplicationContext Registre a configuração do MVC na WebMvcConfigurationDispatcherServlet servirá a todos *.html e /portal/*PortalWebApplicationInitializer também carregará outro servlet CXFServlet para servir os serviços da Web/SOAP em /services/* A configuração do MVC da primavera está na WebMvcConfiguration :
Ele implementa WebMvcConfigurer e é anotado com @EnableWebMvc (equivalente a <mvc:annotation-driven /> no xml da primavera)
Permite o manuseio de servlet padrão
Adiciona Recursos para servir /resources/
Ele configura os resolvedores de visualização para servir JSP/JSTL em /WEB-INF/view/ e para .jsp
Ele configura MessageSource para servir vários idiomas em i18n/messages-XXX.properties
Outros recursos, como CSSS, imagens e Javassripts, estão nas pastas src/main/webapp/[css | images | js ] .
src/main/resources/i18n/messages.properties para as informações exibidas para os clientes, como notificações de sucesso e erro.
src/main/resources/logback.xml para logback
A manipulação e a persistência dos dados são feitas usando o Spring JPA / Hibernate configurado via PersistenceConfiguration .
@Configuration @ComponentScan @EnableJpaRepositories @EnableTransactionManagementjavax.sql.DataSource com a implementação subjacente HikariDataSource do hikaricpentityManagerFactory com LocalContainerEntityManagerFactoryBeanJpaTransactionManagerDataSourceInitializer para configurar alguns dados usando o script load-user-and-role.sql As entidades de domínio são anotadas com convenções JPA em com.westbank.domain
Os repositórios de dados estão em com.westbank.repository para manipular os dados/objetos subjacentes usando EntityManager
Os serviços de dados (incluindo alguma lógica de negócios) estão em com.westbank.service trabalhando no topo dos repositórios
O RDBMS atualmente usado é H2 na memória para a pegada mínima de memória. No entanto, qualquer outro RDBMS também pode ser usado. Para usar outros RDBMSs, apenas observe os seguintes pontos:
WESTBANKDBwestbank com senha secret e atribua esse usuário ao banco de dados ou use seus valores preferidos e atualize hibernate.propertiespom.xml .mvn jetty:run para verificar se o aplicativo da web funciona.logback.xml para depuração. Este projeto também inclui alguns serviços da Web usando o JAX-WS / APACHE CXF para fornecer as funções comerciais necessárias pelo processo de aprovação de empréstimos. Essas interfaces de serviço da web ( *.wsdl ) estão na pasta 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
O plug-in MAVEN cxf-codegen-plugin da Apache CXF é usado para gerar código Java a partir dos serviços acima mencionados (ou seja , contrato de desenvolvimento de serviços ). As fontes Java geradas estão sob o pacote básico com.westbank.ws .
O plug-in M2eclipse que suporta o Maven no Eclipse invocará o Apache CXF
cxf-codegen-pluginsempre que você importar esse projeto para o Eclipse, os material gerado existente serão desnecessariamente substituídos. Assim, o plugin está atualmente desativado. Sempre que qualquer WSDL for modificado, ative este plug-in e execute o comandomvn generate-sourcespara re-generar o código Java.
A implementação real da lógica de negócios de cada serviço da Web está na classe Java correspondente chamada com.westbank.ws.impl.XXXImpl , na qual ' xxx ' é o nome desse serviço da web. Para alterar esses serviços, dê uma olhada na pasta WEB-INF/wsdl . Depois de modificar o WSDLS, basta executar mvn clean generate-sources para re-gerar o código Java.
A configuração para publicar serviços da Web usando o Apache CXF e o Spring é fornecida no ServiceConfiguration carregado pelo contexto do aplicativo root. Por sua vez, carrega as definições de feijão de serviço no ServiceBeans .
Enquanto o aplicativo da web está em execução, abra um navegador da web em http: // localhost: 9999/Portal/Service para ver uma lista de serviços da Web em execução.
Para fins adicionais de testes e demonstrações, alguns valores especiais são codificados nas lógicas dos Serviços da Web:
com.westbank.ws.impl.BankPrivilegeImpl )com.westbank.ws.impl.BankInformationImpl )com.westbank.ws.impl.LoanRiskImpl )com.westbank.ws.impl.TaskDispatchImpl )true , caso contrário, false (consulte com.westbank.ws.impl.CreditWorthinessImpl )