このプロジェクトは、エンドユーザーが架空のWestbankのローン承認プロセスと連携するためのWebインターフェイスポータルを提供します。また、テストの目的では、ローンの承認プロセスで使用される必要なビジネス機能を提供するWebサービスも含まれています。
ポータルは、Apache Tomcat、Eclipse Jetty、Jboss WildflyなどのWebアプリケーションサーバーにアプリケーション( *.war )として展開できます。それでも、コマンドラインで直接実行できます。
プロジェクトフォルダに移動し、次のコマンドを続行します。
mvn jetty:run次に、ポータルメインページのhttp:// localhost:9999/ポータルにWebブラウザーを開きます。
開発/テストのための他のいくつかのページ
基礎となるデータベースの確認( com.westbank.web.DevControllerを参照):http:// localhost:9999/portal/dev.html
実行中のWebサービスのリストの確認:http:// localhost:9999/portal/services
スタッフ(マネージャー、スーパーバイザー、書記官、またはブローカー)としてログインするには、ページにアクセスしてください:http:// localhost:9999/portal/staff/login.html
注:スタッフのIDとパスワードは、ページhttp:// localhost:9999/portal/dev.htmlに一時的にリストされています
mvn -DskipTests clean packageサーブレット3.0+を使用してXMLレス構成に切り替えると、メインWebアプリケーション構成は、従来のWEB-INF/web.xmlの代わりにPortalWebApplicationInitializerです。
PortalWebApplicationInitializer 、最初にルートコンテキストをロードし、2つの構成PersistenceConfiguration (データアクセス用)とServiceConfiguration (Web/SOAPサービスの公開用)を登録しますDispatcherServletのAnnotationConfigWebApplicationContextを使用して、子のコンテキストを登録しますAnnotationConfigWebApplicationContext WebMvcConfigurationのMVC構成を登録しますDispatcherServletすべて*.htmlおよび/portal/*を提供しますPortalWebApplicationInitializer /services/*でWeb/Soapサービスを提供するために別のサーブレットCXFServletもロードします/*Spring MVCの構成はWebMvcConfigurationです。
WebMvcConfigurerを実装し、 @EnableWebMvc ( <mvc:annotation-driven /> in spring xml)で注釈が付けられています。
デフォルトのサーブレット処理を可能にします
リソースハンドラーをサーブ/resources/
jsp/jstl at /WEB-INF/view/およびfor .jspを提供するようにビューリソースバーを構成します
i18n/messages-XXX.propertiesで複数の言語を提供するようにMessageSourceを構成します
CSSS、画像、JavaSriptなどの他のリソースは、フォルダーsrc/main/webapp/[css | images | js ] 。
src/main/resources/i18n/messages.properties成功やエラー通知など、顧客に表示される情報のプロパティ。
src/main/resources/logback.xml for logback
データの操作と持続性は、 PersistenceConfigurationを介して構成されたスプリングJPA / Hibernateを使用して行われます。
@Configuration @EnableJpaRepositories 、 @EnableTransactionManagement 、 @ComponentScanで注釈HikariDataSourceでjavax.sql.DataSourceを定義しますentityManagerFactory LocalContainerEntityManagerFactoryBeanで定義しますJpaTransactionManagerでJPA TransactionManager / JavaトランザクションAPI(JTA)を定義しますDataSourceInitializerを定義して、スクリプトload-user-and-role.sqlを使用していくつかのデータを設定するドメインエンティティには、 com.westbank.domainのJPA規則が注釈が付けられています
データリポジトリは、 EntityManagerを使用して基礎となるデータ/オブジェクトを操作するためのcom.westbank.repositoryにあります
データサービス(いくつかのビジネスロジックを含む)は、 com.westbank.serviceにありますリポジトリの上に作業しています
現在使用されているRDBMSは、メモリフットプリントを最小限に抑えるためのメモリH2です。それにもかかわらず、他のRDBMも使用できます。代わりに他のRDBMSSを使用するために、次のポイントに注意してください。
WESTBANKDBを作成しますsecretを使用してユーザーwestbankを作成し、そのユーザーをデータベースに割り当てるか、希望の値を使用してhibernate.properties更新しますpom.xmlの新しいRDBMSに必要なmaven依存関係を追加します。mvn jetty:run 。logback.xmlの冗長性を調整します。このプロジェクトには、JAX-WS / Apache CXFを使用したWebサービスも含まれており、ローンの承認プロセスで必要なビジネス機能を提供します。これらのWebサービスインターフェイス( *.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プラグインは、前述のサービス(IE契約第一サービス開発)からJavaコードを生成するために使用されます。生成されたJavaソースは、ベースパッケージcom.westbank.wsの下にあります。
EclipseでMavenをサポートするM2Eclipseプラグインは、このプロジェクトをEclipseにインポートするたびに、Apache CXF
cxf-codegen-pluginを呼び出します。既存の生成されたものは不必要に上書きされます。したがって、プラグインは現在無効になっています。 WSDLが変更されたときはいつでも、このプラグインを有効にし、コマンドmvn generate-sourcesを実行してJavaコードを再発生してください。
各Webサービスのビジネスロジックの実際の実装は、「 xxx 」がそのWebサービスの名前であるcom.westbank.ws.impl.XXXImplという名前の対応するJavaクラスにあります。これらのサービスを変更するには、フォルダーWEB-INF/wsdlを調べてください。 WSDLSを変更した後、 mvn clean generate-sourcesを実行してJavaコードを再生成します。
Apache CXFとSpringを使用してWebサービスを公開するための構成は、ルートアプリケーションコンテキストによってロードされたServiceConfigurationで提供されます。順番に、 ServiceBeansにサービスBeanの定義をロードします。
Webアプリケーションが実行されているときに、http:// localhost:9999/portal/servicesでWebブラウザーを開いて、実行中のWebサービスのリストを表示します。
さらなるテストとデモンストレーションのために、Webサービスロジックでは、いくつかの特別な値がハードコーディングされています。
com.westbank.ws.impl.BankPrivilegeImplを参照)com.westbank.ws.impl.BankInformationImplを参照)com.westbank.ws.impl.LoanRiskImplを参照)com.westbank.ws.impl.TaskDispatchImplになります。com.westbank.ws.impl.CreditWorthinessImplはtrueですfalse