在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Java Web高级编程(源码)

Java Web高级编程(源码)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:6.15M
  • 下载次数:0
  • 浏览次数:140
  • 发布时间:2021-01-11
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.rar
  • 所需积分:2
 

实例介绍

【实例简介】
Java Web高级编程源码
【实例截图】
【核心代码】
b3ec09fa-f8a4-4dbd-90c4-1a288efe3b1e
└── 高级编程源码
└── 9781118656464 Full Code
├── Chapter 02
│   ├── Sample-Debug-Eclipse
│   │   ├── pom.xml
│   │   └── web
│   │   └── index.jsp
│   ├── Sample-Debug-IntelliJ
│   │   ├── pom.xml
│   │   ├── Sample-Debug-IntelliJ.iml
│   │   └── web
│   │   └── index.jsp
│   └── sample-deployment.war
├── Chapter 03
│   ├── Eclipse
│   │   ├── Customer-Support-v1
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── Ticket.java
│   │   │   │   └── TicketServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   └── web.xml
│   │   ├── Hello-User
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── ContextParameterServlet.java
│   │   │   │   ├── HelloServlet.java
│   │   │   │   ├── MultiValueParameterServlet.java
│   │   │   │   └── ServletParameterServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   └── web.xml
│   │   └── Hello-World
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   └── HelloServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v1
│   │   ├── Customer-Support-v1.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── Ticket.java
│   │   │   └── TicketServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   └── web.xml
│   ├── Hello-User
│   │   ├── Hello-User.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── ContextParameterServlet.java
│   │   │   ├── HelloServlet.java
│   │   │   ├── MultiValueParameterServlet.java
│   │   │   └── ServletParameterServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   └── web.xml
│   └── Hello-World
│   ├── Hello-World.iml
│   ├── pom.xml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   └── HelloServlet.java
│   └── web
│   ├── index.jsp
│   └── WEB-INF
│   └── web.xml
├── Chapter 04
│   ├── Eclipse
│   │   ├── Customer-Support-v2
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── Ticket.java
│   │   │   │   └── TicketServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   └── web.xml
│   │   ├── Hello-User-JSP
│   │   │   ├── pom.xml
│   │   │   └── web
│   │   │   ├── checkboxes.jsp
│   │   │   ├── checkboxesSubmit.jsp
│   │   │   ├── contextParameters.jsp
│   │   │   ├── greeting.jsp
│   │   │   └── WEB-INF
│   │   │   └── web.xml
│   │   └── Hello-World-JSP
│   │   ├── pom.xml
│   │   └── web
│   │   ├── blank.jsp
│   │   ├── dynamicIncluder.jsp
│   │   ├── gibberish.jsp
│   │   ├── includer.jsp
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v2
│   │   ├── Customer-Support-v2.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── Ticket.java
│   │   │   └── TicketServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── listTickets.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   └── web.xml
│   ├── Hello-User-JSP
│   │   ├── Hello-User-JSP.iml
│   │   ├── pom.xml
│   │   └── web
│   │   ├── checkboxes.jsp
│   │   ├── checkboxesSubmit.jsp
│   │   ├── contextParameters.jsp
│   │   ├── greeting.jsp
│   │   └── WEB-INF
│   │   └── web.xml
│   └── Hello-World-JSP
│   ├── Hello-World-JSP.iml
│   ├── pom.xml
│   └── web
│   ├── blank.jsp
│   ├── dynamicIncluder.jsp
│   ├── gibberish.jsp
│   ├── includer.jsp
│   ├── index.jsp
│   └── WEB-INF
│   └── web.xml
├── Chapter 05
│   ├── Eclipse
│   │   ├── Customer-Support-v3
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── LoginServlet.java
│   │   │   │   ├── SessionListener.java
│   │   │   │   ├── SessionListServlet.java
│   │   │   │   ├── SessionRegistry.java
│   │   │   │   ├── Ticket.java
│   │   │   │   └── TicketServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── sessions.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   └── web.xml
│   │   ├── Session-Activity
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── ActivityServlet.java
│   │   │   │   └── PageVisit.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── viewSessionActivity.jsp
│   │   │   └── web.xml
│   │   └── Shopping-Cart
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   └── StoreServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── browse.jsp
│   │   │   └── viewCart.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v3
│   │   ├── Customer-Support-v3.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── LoginServlet.java
│   │   │   ├── SessionListener.java
│   │   │   ├── SessionListServlet.java
│   │   │   ├── SessionRegistry.java
│   │   │   ├── Ticket.java
│   │   │   └── TicketServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   └── web.xml
│   ├── Session-Activity
│   │   ├── pom.xml
│   │   ├── Session-Activity.iml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── ActivityServlet.java
│   │   │   └── PageVisit.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── viewSessionActivity.jsp
│   │   └── web.xml
│   └── Shopping-Cart
│   ├── pom.xml
│   ├── Shopping-Cart.iml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   └── StoreServlet.java
│   └── web
│   ├── index.jsp
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── browse.jsp
│   │   └── viewCart.jsp
│   └── web.xml
├── Chapter 06
│   ├── Eclipse
│   │   ├── Customer-Support-v4
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── LoginServlet.java
│   │   │   │   ├── SessionListener.java
│   │   │   │   ├── SessionListServlet.java
│   │   │   │   ├── SessionRegistry.java
│   │   │   │   ├── Ticket.java
│   │   │   │   └── TicketServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── sessions.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   └── web.xml
│   │   └── User-Profile
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── ProfileServlet.java
│   │   │   └── User.java
│   │   └── web
│   │   ├── collections.jsp
│   │   ├── index.jsp
│   │   ├── info.jsp
│   │   ├── scope.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── profile.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v4
│   │   ├── Customer-Support-v4.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── LoginServlet.java
│   │   │   ├── SessionListener.java
│   │   │   ├── SessionListServlet.java
│   │   │   ├── SessionRegistry.java
│   │   │   ├── Ticket.java
│   │   │   └── TicketServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   └── web.xml
│   └── User-Profile
│   ├── pom.xml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   ├── ProfileServlet.java
│   │   └── User.java
│   ├── User-Profile.iml
│   └── web
│   ├── collections.jsp
│   ├── index.jsp
│   ├── info.jsp
│   ├── scope.jsp
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── profile.jsp
│   └── web.xml
├── Chapter 07
│   ├── Eclipse
│   │   ├── Address-Book
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Contact.java
│   │   │   │   └── ListServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── list.jsp
│   │   │   └── web.xml
│   │   ├── Address-Book-i18n
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── Contact.java
│   │   │   │   │   └── ListServlet.java
│   │   │   │   └── resources
│   │   │   │   ├── AddressBook-messages_en_US.properties
│   │   │   │   └── AddressBook-messages_fr_FR.properties
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── list.jsp
│   │   │   └── web.xml
│   │   └── Customer-Support-v5
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── LoginServlet.java
│   │   │   ├── SessionListener.java
│   │   │   ├── SessionListServlet.java
│   │   │   ├── SessionRegistry.java
│   │   │   ├── Ticket.java
│   │   │   └── TicketServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Address-Book
│   │   ├── Address-Book.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Contact.java
│   │   │   └── ListServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── list.jsp
│   │   └── web.xml
│   ├── Address-Book-i18n
│   │   ├── Address-Book-i18n.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Contact.java
│   │   │   │   └── ListServlet.java
│   │   │   └── resources
│   │   │   ├── AddressBook-messages_en_US.properties
│   │   │   └── AddressBook-messages_fr_FR.properties
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── list.jsp
│   │   └── web.xml
│   └── Customer-Support-v5
│   ├── Customer-Support-v5.iml
│   ├── pom.xml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   ├── Attachment.java
│   │   ├── LoginServlet.java
│   │   ├── SessionListener.java
│   │   ├── SessionListServlet.java
│   │   ├── SessionRegistry.java
│   │   ├── Ticket.java
│   │   └── TicketServlet.java
│   └── web
│   ├── index.jsp
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── listTickets.jsp
│   │   ├── login.jsp
│   │   ├── sessions.jsp
│   │   ├── ticketForm.jsp
│   │   └── viewTicket.jsp
│   └── web.xml
├── Chapter 08
│   ├── c.tld
│   ├── Eclipse
│   │   ├── Customer-Support-v6
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── LoginServlet.java
│   │   │   │   ├── SessionListener.java
│   │   │   │   ├── SessionListServlet.java
│   │   │   │   ├── SessionRegistry.java
│   │   │   │   ├── tag
│   │   │   │   │   └── FormatDateTag.java
│   │   │   │   ├── Ticket.java
│   │   │   │   ├── TicketServlet.java
│   │   │   │   └── TimeUtils.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── sessions.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   └── Template-Tags
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── IndexServlet.java
│   │   │   └── tag
│   │   │   └── FormatDateTag.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── dates.jsp
│   │   │   ├── hello.jsp
│   │   │   └── text.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   ├── fn.tld
│   └── IntelliJ
│   ├── Customer-Support-v6
│   │   ├── Customer-Support-v6.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── LoginServlet.java
│   │   │   ├── SessionListener.java
│   │   │   ├── SessionListServlet.java
│   │   │   ├── SessionRegistry.java
│   │   │   ├── tag
│   │   │   │   └── FormatDateTag.java
│   │   │   ├── Ticket.java
│   │   │   ├── TicketServlet.java
│   │   │   └── TimeUtils.java
│   │   └── web
│   │   ├── index.jsp
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   └── Template-Tags
│   ├── pom.xml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   ├── IndexServlet.java
│   │   └── tag
│   │   └── FormatDateTag.java
│   ├── Template-Tags.iml
│   └── web
│   ├── index.jsp
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── dates.jsp
│   │   ├── hello.jsp
│   │   └── text.jsp
│   ├── tags
│   │   └── template
│   │   └── main.tag
│   ├── tld
│   │   └── wrox.tld
│   └── web.xml
├── Chapter 09
│   ├── Eclipse
│   │   ├── Compression-Filter
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── CompressedServlet.java
│   │   │   │   ├── CompressionFilter.java
│   │   │   │   ├── Configurator.java
│   │   │   │   └── RequestLogFilter.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   └── base.jspf
│   │   │   └── web.xml
│   │   ├── Customer-Support-v7
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   ├── Configurator.java
│   │   │   │   ├── LoginServlet.java
│   │   │   │   ├── SessionListener.java
│   │   │   │   ├── SessionListServlet.java
│   │   │   │   ├── SessionRegistry.java
│   │   │   │   ├── tag
│   │   │   │   │   └── FormatDateTag.java
│   │   │   │   ├── Ticket.java
│   │   │   │   ├── TicketServlet.java
│   │   │   │   └── TimeUtils.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── sessions.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   ├── Filter-Async
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── AnyRequestFilter.java
│   │   │   │   ├── AsyncServlet.java
│   │   │   │   └── NonAsyncServlet.java
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   └── view
│   │   │   │   ├── async.jsp
│   │   │   │   └── nonAsync.jsp
│   │   │   └── web.xml
│   │   └── Filter-Order
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── FilterA.java
│   │   │   ├── FilterB.java
│   │   │   ├── FilterC.java
│   │   │   ├── ServletOne.java
│   │   │   ├── ServletThree.java
│   │   │   └── ServletTwo.java
│   │   └── web
│   │   └── WEB-INF
│   │   └── web.xml
│   └── IntelliJ
│   ├── Compression-Filter
│   │   ├── Compression-Filter.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── CompressedServlet.java
│   │   │   ├── CompressionFilter.java
│   │   │   ├── Configurator.java
│   │   │   └── RequestLogFilter.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   └── web.xml
│   ├── Customer-Support-v7
│   │   ├── Customer-Support-v7.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── AuthenticationFilter.java
│   │   │   ├── Configurator.java
│   │   │   ├── LoginServlet.java
│   │   │   ├── SessionListener.java
│   │   │   ├── SessionListServlet.java
│   │   │   ├── SessionRegistry.java
│   │   │   ├── tag
│   │   │   │   └── FormatDateTag.java
│   │   │   ├── Ticket.java
│   │   │   ├── TicketServlet.java
│   │   │   └── TimeUtils.java
│   │   └── web
│   │   ├── index.jsp
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   ├── Filter-Async
│   │   ├── Filter-Async.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── AnyRequestFilter.java
│   │   │   ├── AsyncServlet.java
│   │   │   └── NonAsyncServlet.java
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── view
│   │   │   ├── async.jsp
│   │   │   └── nonAsync.jsp
│   │   └── web.xml
│   └── Filter-Order
│   ├── Filter-Order.iml
│   ├── pom.xml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   ├── FilterA.java
│   │   ├── FilterB.java
│   │   ├── FilterC.java
│   │   ├── ServletOne.java
│   │   ├── ServletThree.java
│   │   └── ServletTwo.java
│   └── web
│   └── WEB-INF
│   └── web.xml
├── Chapter 10
│   ├── Eclipse
│   │   ├── Customer-Support-v8
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   ├── chat
│   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   └── ChatSession.java
│   │   │   │   ├── ChatServlet.java
│   │   │   │   ├── Configurator.java
│   │   │   │   ├── LoginServlet.java
│   │   │   │   ├── SessionListener.java
│   │   │   │   ├── SessionListServlet.java
│   │   │   │   ├── SessionRegistry.java
│   │   │   │   ├── tag
│   │   │   │   │   └── FormatDateTag.java
│   │   │   │   ├── Ticket.java
│   │   │   │   ├── TicketServlet.java
│   │   │   │   └── TimeUtils.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── sessions.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   ├── Game-Site
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   └── production
│   │   │   │   └── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── TicTacToeGame.java
│   │   │   │   ├── TicTacToeServer.java
│   │   │   │   └── TicTacToeServlet.java
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   ├── resource
│   │   │   │   ├── image
│   │   │   │   │   ├── ticTacToe-hover.png
│   │   │   │   │   ├── ticTacToe-opponent.png
│   │   │   │   │   └── ticTacToe-player.png
│   │   │   │   └── stylesheet
│   │   │   │   └── ticTacToe.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── ticTacToe
│   │   │   │   ├── game.jsp
│   │   │   │   └── list.jsp
│   │   │   └── web.xml
│   │   └── Simulated-Cluster
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── ClusterMessage.java
│   │   │   ├── ClusterNodeEndpoint.java
│   │   │   └── ClusterNodeServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v8
│   │   ├── Customer-Support-v8.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── Attachment.java
│   │   │   ├── AuthenticationFilter.java
│   │   │   ├── chat
│   │   │   │   ├── ChatEndpoint.java
│   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   ├── ChatMessage.java
│   │   │   │   └── ChatSession.java
│   │   │   ├── ChatServlet.java
│   │   │   ├── Configurator.java
│   │   │   ├── LoginServlet.java
│   │   │   ├── SessionListener.java
│   │   │   ├── SessionListServlet.java
│   │   │   ├── SessionRegistry.java
│   │   │   ├── tag
│   │   │   │   └── FormatDateTag.java
│   │   │   ├── Ticket.java
│   │   │   ├── TicketServlet.java
│   │   │   └── TimeUtils.java
│   │   └── web
│   │   ├── index.jsp
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   ├── Game-Site
│   │   ├── Game-Site.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   └── production
│   │   │   └── java
│   │   │   └── com
│   │   │   └── wrox
│   │   │   ├── TicTacToeGame.java
│   │   │   ├── TicTacToeServer.java
│   │   │   └── TicTacToeServlet.java
│   │   └── web
│   │   ├── index.jsp
│   │   ├── resource
│   │   │   ├── image
│   │   │   │   ├── ticTacToe-hover.png
│   │   │   │   ├── ticTacToe-opponent.png
│   │   │   │   └── ticTacToe-player.png
│   │   │   └── stylesheet
│   │   │   └── ticTacToe.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── ticTacToe
│   │   │   ├── game.jsp
│   │   │   └── list.jsp
│   │   └── web.xml
│   └── Simulated-Cluster
│   ├── pom.xml
│   ├── Simulated-Cluster.iml
│   ├── source
│   │   └── production
│   │   └── java
│   │   └── com
│   │   └── wrox
│   │   ├── ClusterMessage.java
│   │   ├── ClusterNodeEndpoint.java
│   │   └── ClusterNodeServlet.java
│   └── web
│   ├── index.jsp
│   └── WEB-INF
│   ├── jsp
│   │   └── base.jspf
│   └── web.xml
├── Chapter 11
│   ├── Eclipse
│   │   ├── Customer-Support-v9
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   └── ChatSession.java
│   │   │   │   │   │   ├── ChatServlet.java
│   │   │   │   │   │   ├── Configurator.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── LoginServlet.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionListServlet.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketServlet.java
│   │   │   │   │   │   └── TimeUtils.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── index.jsp
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── listTickets.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── sessions.jsp
│   │   │   │   ├── ticketForm.jsp
│   │   │   │   └── viewTicket.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   └── Logging-Integration
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── ActionServlet.java
│   │   │   │   │   └── LoggingFilter.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── index.jsp
│   │   ├── logging.jsp
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v9
│   │   ├── Customer-Support-v9.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   └── ChatSession.java
│   │   │   │   │   ├── ChatServlet.java
│   │   │   │   │   ├── Configurator.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── LoginServlet.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionListServlet.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketServlet.java
│   │   │   │   │   └── TimeUtils.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── index.jsp
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── listTickets.jsp
│   │   │   ├── login.jsp
│   │   │   ├── sessions.jsp
│   │   │   ├── ticketForm.jsp
│   │   │   └── viewTicket.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   └── Logging-Integration
│   ├── Logging-Integration.iml
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── ActionServlet.java
│   │   │   │   └── LoggingFilter.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   ├── index.jsp
│   ├── logging.jsp
│   └── WEB-INF
│   ├── jsp
│   │   └── base.jspf
│   └── web.xml
├── Chapter 12
│   ├── Eclipse
│   │   ├── Spring-Hybrid-Config
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   │   └── HelloController.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   └── base.jspf
│   │   │   ├── rootContext.xml
│   │   │   ├── servletContext.xml
│   │   │   └── web.xml
│   │   ├── Spring-Java-Config
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   │   └── HelloController.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   └── base.jspf
│   │   │   └── web.xml
│   │   ├── Spring-One-Context-XML-Config
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   │   └── HelloController.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   └── base.jspf
│   │   │   ├── servletContext.xml
│   │   │   └── web.xml
│   │   └── Spring-XML-Config
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   └── HelloController.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   ├── rootContext.xml
│   │   ├── servletContext.xml
│   │   └── web.xml
│   └── IntelliJ
│   ├── Spring-Hybrid-Config
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   └── HelloController.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   ├── Spring-Hybrid-Config.iml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   ├── rootContext.xml
│   │   ├── servletContext.xml
│   │   └── web.xml
│   ├── Spring-Java-Config
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   └── HelloController.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   ├── Spring-Java-Config.iml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   └── web.xml
│   ├── Spring-One-Context-XML-Config
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   │   ├── GreetingService.java
│   │   │   │   │   └── HelloController.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   ├── Spring-One-Context-XML-Config.iml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   └── base.jspf
│   │   ├── servletContext.xml
│   │   └── web.xml
│   └── Spring-XML-Config
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── GreetingServiceImpl.java
│   │   │   │   ├── GreetingService.java
│   │   │   │   └── HelloController.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   ├── Spring-XML-Config.iml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   └── base.jspf
│   ├── rootContext.xml
│   ├── servletContext.xml
│   └── web.xml
├── Chapter 13
│   ├── Eclipse
│   │   ├── Customer-Support-v10
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   └── ChatSession.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   └── TimeUtils.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   ├── Model-View-Controller
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── HomeController.java
│   │   │   │   │   │   └── User.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── home
│   │   │   │   │   └── dashboard.jsp
│   │   │   │   └── user
│   │   │   │   └── home.jsp
│   │   │   └── web.xml
│   │   └── Spring-Forms
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── UserForm.java
│   │   │   │   │   ├── User.java
│   │   │   │   │   └── UserManagementController.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── user
│   │   │   ├── add.jsp
│   │   │   ├── edit.jsp
│   │   │   ├── form.jspf
│   │   │   └── list.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v10
│   │   ├── Customer-Support-v10.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   └── ChatSession.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   └── TimeUtils.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   ├── Model-View-Controller
│   │   ├── Model-View-Controller.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── HomeController.java
│   │   │   │   │   └── User.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── home
│   │   │   │   └── dashboard.jsp
│   │   │   └── user
│   │   │   └── home.jsp
│   │   └── web.xml
│   └── Spring-Forms
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── UserForm.java
│   │   │   │   ├── User.java
│   │   │   │   └── UserManagementController.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   ├── Spring-Forms.iml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── user
│   │   ├── add.jsp
│   │   ├── edit.jsp
│   │   ├── form.jspf
│   │   └── list.jsp
│   └── web.xml
├── Chapter 14
│   ├── Eclipse
│   │   ├── Customer-Support-v11
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   └── Discussion-Board
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── BoardController.java
│   │   │   │   │   ├── DefaultDiscussionService.java
│   │   │   │   │   ├── DefaultReplyService.java
│   │   │   │   │   ├── DiscussionController.java
│   │   │   │   │   ├── DiscussionRepository.java
│   │   │   │   │   ├── DiscussionService.java
│   │   │   │   │   ├── entity
│   │   │   │   │   │   ├── Discussion.java
│   │   │   │   │   │   └── Reply.java
│   │   │   │   │   ├── FakeNotificationService.java
│   │   │   │   │   ├── form
│   │   │   │   │   │   ├── DiscussionForm.java
│   │   │   │   │   │   └── ReplyForm.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── InMemoryDiscussionRepository.java
│   │   │   │   │   ├── InMemoryReplyRepository.java
│   │   │   │   │   ├── NotificationService.java
│   │   │   │   │   ├── ReplyRepository.java
│   │   │   │   │   └── ReplyService.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── discussion
│   │   │   ├── create.jsp
│   │   │   ├── errorNoDiscussion.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v11
│   │   ├── Customer-Support-v11.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   └── UserRepository.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   └── Discussion-Board
│   ├── Discussion-Board.iml
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── BoardController.java
│   │   │   │   ├── DefaultDiscussionService.java
│   │   │   │   ├── DefaultReplyService.java
│   │   │   │   ├── DiscussionController.java
│   │   │   │   ├── DiscussionRepository.java
│   │   │   │   ├── DiscussionService.java
│   │   │   │   ├── entity
│   │   │   │   │   ├── Discussion.java
│   │   │   │   │   └── Reply.java
│   │   │   │   ├── FakeNotificationService.java
│   │   │   │   ├── form
│   │   │   │   │   ├── DiscussionForm.java
│   │   │   │   │   └── ReplyForm.java
│   │   │   │   ├── IndexController.java
│   │   │   │   ├── InMemoryDiscussionRepository.java
│   │   │   │   ├── InMemoryReplyRepository.java
│   │   │   │   ├── NotificationService.java
│   │   │   │   ├── ReplyRepository.java
│   │   │   │   └── ReplyService.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── discussion
│   │   ├── create.jsp
│   │   ├── errorNoDiscussion.jsp
│   │   ├── list.jsp
│   │   └── view.jsp
│   └── web.xml
├── Chapter 15
│   ├── Eclipse
│   │   ├── Customer-Support-v12
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   └── LoggedException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   └── titles_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   └── Localized-Application
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   └── LoggedException.java
│   │   │   │   │   └── site
│   │   │   │   │   └── HomeController.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── errors_es_MX.properties
│   │   │   ├── messages_en_US.properties
│   │   │   └── messages_es_MX.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── home
│   │   │   └── index.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v12
│   │   ├── Customer-Support-v12.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   └── LoggedException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   └── UserRepository.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   └── titles_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   └── Localized-Application
│   ├── Localized-Application.iml
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   └── LoggedException.java
│   │   │   │   └── site
│   │   │   │   └── HomeController.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   └── WEB-INF
│   ├── i18n
│   │   ├── errors_en_US.properties
│   │   ├── errors_es_MX.properties
│   │   ├── messages_en_US.properties
│   │   └── messages_es_MX.properties
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── home
│   │   └── index.jsp
│   └── web.xml
├── Chapter 16
│   ├── Eclipse
│   │   ├── Custom-Constraints
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── DefaultEmployeeService.java
│   │   │   │   │   │   ├── EmployeeController.java
│   │   │   │   │   │   ├── EmployeeForm.java
│   │   │   │   │   │   ├── Employee.java
│   │   │   │   │   │   ├── EmployeeService.java
│   │   │   │   │   │   ├── Gender.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── employee
│   │   │   │   └── create.jsp
│   │   │   └── web.xml
│   │   ├── Customer-Support-v13
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   └── LoggedException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   └── web.xml
│   │   └── HR-Portal
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── DefaultEmployeeService.java
│   │   │   │   │   ├── EmployeeController.java
│   │   │   │   │   ├── EmployeeForm.java
│   │   │   │   │   ├── Employee.java
│   │   │   │   │   ├── EmployeeService.java
│   │   │   │   │   └── Gender.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── employee
│   │   │   └── create.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Custom-Constraints
│   │   ├── Custom-Constraints.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── DefaultEmployeeService.java
│   │   │   │   │   ├── EmployeeController.java
│   │   │   │   │   ├── EmployeeForm.java
│   │   │   │   │   ├── Employee.java
│   │   │   │   │   ├── EmployeeService.java
│   │   │   │   │   ├── Gender.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── employee
│   │   │   └── create.jsp
│   │   └── web.xml
│   ├── Customer-Support-v13
│   │   ├── Customer-Support-v13.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   └── LoggedException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   └── web.xml
│   └── HR-Portal
│   ├── HR-Portal.iml
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── ServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── DefaultEmployeeService.java
│   │   │   │   ├── EmployeeController.java
│   │   │   │   ├── EmployeeForm.java
│   │   │   │   ├── Employee.java
│   │   │   │   ├── EmployeeService.java
│   │   │   │   └── Gender.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   └── WEB-INF
│   ├── i18n
│   │   ├── messages_en_US.properties
│   │   ├── titles_en_US.properties
│   │   └── validation_en_US.properties
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── employee
│   │   └── create.jsp
│   └── web.xml
├── Chapter 17
│   ├── Eclipse
│   │   ├── Customer-Support-v14
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   ├── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   └── config
│   │   │   │   │   │   └── soapServletContext.xml
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   ├── web.xml
│   │   │   └── xsd
│   │   │   └── soap
│   │   │   └── support.xsd
│   │   └── Web-Service
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AccountController.java
│   │   │   │   │   ├── AccountForm.java
│   │   │   │   │   ├── Account.java
│   │   │   │   │   ├── AccountRestEndpoint.java
│   │   │   │   │   ├── AccountService.java
│   │   │   │   │   ├── DefaultAccountService.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── IndexRestEndpoint.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── account
│   │   │   └── list.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v14
│   │   ├── Customer-Support-v14.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── InMemoryTicketRepository.java
│   │   │   │   │   ├── InMemoryUserRepository.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TemporaryAuthenticationService.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── Web-Service
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── AccountController.java
│   │   │   │   ├── AccountForm.java
│   │   │   │   ├── Account.java
│   │   │   │   ├── AccountRestEndpoint.java
│   │   │   │   ├── AccountService.java
│   │   │   │   ├── DefaultAccountService.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   ├── IndexRestEndpoint.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   ├── web
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── account
│   │   │   └── list.jsp
│   │   └── web.xml
│   └── Web-Service.iml
├── Chapter 18
│   ├── Eclipse
│   │   ├── AMQP-Messaging
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── AuthenticationEvent.java
│   │   │   │   │   │   ├── AuthenticationInterestedParty.java
│   │   │   │   │   │   ├── ClusterEvent.java
│   │   │   │   │   │   ├── ClusterEventMulticaster.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   │   ├── HomeController.java
│   │   │   │   │   │   ├── LoginEvent.java
│   │   │   │   │   │   ├── LoginInterestedParty.java
│   │   │   │   │   │   ├── LogoutEvent.java
│   │   │   │   │   │   ├── LogoutInterestedParty.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── login.jsp
│   │   │   │   └── logout.jsp
│   │   │   └── web.xml
│   │   ├── Publish-Subscribe
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── AuthenticationEvent.java
│   │   │   │   │   │   ├── AuthenticationInterestedParty.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   │   ├── HomeController.java
│   │   │   │   │   │   ├── LoginEvent.java
│   │   │   │   │   │   ├── LoginInterestedParty.java
│   │   │   │   │   │   ├── LogoutEvent.java
│   │   │   │   │   │   ├── LogoutInterestedParty.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── login.jsp
│   │   │   │   └── logout.jsp
│   │   │   └── web.xml
│   │   └── WebSocket-Messaging
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationEvent.java
│   │   │   │   │   ├── AuthenticationInterestedParty.java
│   │   │   │   │   ├── ClusterEvent.java
│   │   │   │   │   ├── ClusterEventMulticaster.java
│   │   │   │   │   ├── ClusterManager.java
│   │   │   │   │   ├── ClusterMessagingEndpoint.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── HomeController.java
│   │   │   │   │   ├── LoginEvent.java
│   │   │   │   │   ├── LoginInterestedParty.java
│   │   │   │   │   ├── LogoutEvent.java
│   │   │   │   │   ├── LogoutInterestedParty.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── login.jsp
│   │   │   └── logout.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── AMQP-Messaging
│   │   ├── AMQP-Messaging.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationEvent.java
│   │   │   │   │   ├── AuthenticationInterestedParty.java
│   │   │   │   │   ├── ClusterEvent.java
│   │   │   │   │   ├── ClusterEventMulticaster.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── HomeController.java
│   │   │   │   │   ├── LoginEvent.java
│   │   │   │   │   ├── LoginInterestedParty.java
│   │   │   │   │   ├── LogoutEvent.java
│   │   │   │   │   ├── LogoutInterestedParty.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── login.jsp
│   │   │   └── logout.jsp
│   │   └── web.xml
│   ├── Publish-Subscribe
│   │   ├── pom.xml
│   │   ├── Publish-Subscribe.iml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationEvent.java
│   │   │   │   │   ├── AuthenticationInterestedParty.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── HomeController.java
│   │   │   │   │   ├── LoginEvent.java
│   │   │   │   │   ├── LoginInterestedParty.java
│   │   │   │   │   ├── LogoutEvent.java
│   │   │   │   │   ├── LogoutInterestedParty.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── login.jsp
│   │   │   └── logout.jsp
│   │   └── web.xml
│   └── WebSocket-Messaging
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── AuthenticationEvent.java
│   │   │   │   ├── AuthenticationInterestedParty.java
│   │   │   │   ├── ClusterEvent.java
│   │   │   │   ├── ClusterEventMulticaster.java
│   │   │   │   ├── ClusterManager.java
│   │   │   │   ├── ClusterMessagingEndpoint.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   ├── HomeController.java
│   │   │   │   ├── LoginEvent.java
│   │   │   │   ├── LoginInterestedParty.java
│   │   │   │   ├── LogoutEvent.java
│   │   │   │   ├── LogoutInterestedParty.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   ├── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── login.jsp
│   │   │   └── logout.jsp
│   │   └── web.xml
│   └── WebSocket-Messaging.iml
├── Chapter 20
│   ├── Eclipse
│   │   ├── Entity-Mappings
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Author.java
│   │   │   │   │   │   │   ├── Book.java
│   │   │   │   │   │   │   └── Publisher.java
│   │   │   │   │   │   └── EntityServlet.java
│   │   │   │   │   └── resources
│   │   │   │   │   ├── log4j2.xml
│   │   │   │   │   └── META-INF
│   │   │   │   │   └── persistence.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── entities.jsp
│   │   │   └── web.xml
│   │   └── Enums-Dates-Lobs
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── site
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Author.java
│   │   │   │   │   │   ├── Book.java
│   │   │   │   │   │   ├── Gender.java
│   │   │   │   │   │   └── Publisher.java
│   │   │   │   │   └── EntityServlet.java
│   │   │   │   └── resources
│   │   │   │   ├── log4j2.xml
│   │   │   │   └── META-INF
│   │   │   │   └── persistence.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── entities.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Entity-Mappings
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── Entity-Mappings.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── site
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Author.java
│   │   │   │   │   │   ├── Book.java
│   │   │   │   │   │   └── Publisher.java
│   │   │   │   │   └── EntityServlet.java
│   │   │   │   └── resources
│   │   │   │   ├── log4j2.xml
│   │   │   │   └── META-INF
│   │   │   │   └── persistence.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── entities.jsp
│   │   └── web.xml
│   └── Enums-Dates-Lobs
│   ├── database
│   │   └── create.sql
│   ├── Enums-Dates-Lobs.iml
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   └── site
│   │   │   │   ├── entities
│   │   │   │   │   ├── Author.java
│   │   │   │   │   ├── Book.java
│   │   │   │   │   ├── Gender.java
│   │   │   │   │   └── Publisher.java
│   │   │   │   └── EntityServlet.java
│   │   │   └── resources
│   │   │   ├── log4j2.xml
│   │   │   └── META-INF
│   │   │   └── persistence.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── entities.jsp
│   └── web.xml
├── Chapter 21
│   ├── Eclipse
│   │   ├── Customer-Support-v15
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultAttachmentRepository.java
│   │   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketRepository.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DefaultUserRepository.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   │   ├── TicketEntity.java
│   │   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   │   ├── GenericBaseRepository.java
│   │   │   │   │   │   ├── GenericJpaRepository.java
│   │   │   │   │   │   ├── GenericRepository.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   ├── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   └── config
│   │   │   │   │   │   └── soapServletContext.xml
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   ├── web.xml
│   │   │   └── xsd
│   │   │   └── soap
│   │   │   └── support.xsd
│   │   └── Spring-JPA
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthorRepository.java
│   │   │   │   │   ├── BookController.java
│   │   │   │   │   ├── BookManager.java
│   │   │   │   │   ├── BookRepository.java
│   │   │   │   │   ├── DefaultAuthorRepository.java
│   │   │   │   │   ├── DefaultBookManager.java
│   │   │   │   │   ├── DefaultBookRepository.java
│   │   │   │   │   ├── DefaultPublisherRepository.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Author.java
│   │   │   │   │   │   ├── Book.java
│   │   │   │   │   │   ├── Gender.java
│   │   │   │   │   │   └── Publisher.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── GenericBaseRepository.java
│   │   │   │   │   ├── GenericJpaRepository.java
│   │   │   │   │   ├── GenericRepository.java
│   │   │   │   │   ├── PublisherRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── entities.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v15
│   │   ├── Customer-Support-v15.iml
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultAttachmentRepository.java
│   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketRepository.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DefaultUserRepository.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── TicketEntity.java
│   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   ├── GenericBaseRepository.java
│   │   │   │   │   ├── GenericJpaRepository.java
│   │   │   │   │   ├── GenericRepository.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── Spring-JPA
│   ├── database
│   │   └── create.sql
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── AuthorRepository.java
│   │   │   │   ├── BookController.java
│   │   │   │   ├── BookManager.java
│   │   │   │   ├── BookRepository.java
│   │   │   │   ├── DefaultAuthorRepository.java
│   │   │   │   ├── DefaultBookManager.java
│   │   │   │   ├── DefaultBookRepository.java
│   │   │   │   ├── DefaultPublisherRepository.java
│   │   │   │   ├── entities
│   │   │   │   │   ├── Author.java
│   │   │   │   │   ├── Book.java
│   │   │   │   │   ├── Gender.java
│   │   │   │   │   └── Publisher.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   ├── GenericBaseRepository.java
│   │   │   │   ├── GenericJpaRepository.java
│   │   │   │   ├── GenericRepository.java
│   │   │   │   ├── PublisherRepository.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   ├── Spring-JPA.iml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── entities.jsp
│   └── web.xml
├── Chapter 22
│   ├── Eclipse
│   │   ├── Customer-Support-v16
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   │   ├── TicketCommentEntity.java
│   │   │   │   │   │   │   ├── TicketEntity.java
│   │   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── repositories
│   │   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   ├── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   └── config
│   │   │   │   │   │   └── soapServletContext.xml
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   ├── web.xml
│   │   │   └── xsd
│   │   │   └── soap
│   │   │   └── support.xsd
│   │   └── Spring-Data-JPA
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── BookController.java
│   │   │   │   │   ├── BookManager.java
│   │   │   │   │   ├── DefaultBookManager.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Author.java
│   │   │   │   │   │   ├── Book.java
│   │   │   │   │   │   ├── Gender.java
│   │   │   │   │   │   └── Publisher.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AuthorRepository.java
│   │   │   │   │   │   ├── BookRepository.java
│   │   │   │   │   │   └── PublisherRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── entities.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v16
│   │   ├── Customer-Support-v16.iml
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── TicketCommentEntity.java
│   │   │   │   │   │   ├── TicketEntity.java
│   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── Spring-Data-JPA
│   ├── database
│   │   └── create.sql
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── BookController.java
│   │   │   │   ├── BookManager.java
│   │   │   │   ├── DefaultBookManager.java
│   │   │   │   ├── entities
│   │   │   │   │   ├── Author.java
│   │   │   │   │   ├── Book.java
│   │   │   │   │   ├── Gender.java
│   │   │   │   │   └── Publisher.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   ├── repositories
│   │   │   │   │   ├── AuthorRepository.java
│   │   │   │   │   ├── BookRepository.java
│   │   │   │   │   └── PublisherRepository.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   ├── Spring-Data-JPA.iml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   └── entities.jsp
│   └── web.xml
├── Chapter 23
│   ├── Eclipse
│   │   ├── Advanced-Criteria
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── Criterion.java
│   │   │   │   │   │   ├── DefaultPersonService.java
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Gender.java
│   │   │   │   │   │   │   └── Person.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   │   ├── MainController.java
│   │   │   │   │   │   ├── PersonService.java
│   │   │   │   │   │   ├── repositories
│   │   │   │   │   │   │   ├── AbstractDomainClassAwareRepository.java
│   │   │   │   │   │   │   ├── AbstractSearchableJpaRepository.java
│   │   │   │   │   │   │   ├── PersonRepositoryImpl.java
│   │   │   │   │   │   │   ├── PersonRepository.java
│   │   │   │   │   │   │   └── SearchableRepository.java
│   │   │   │   │   │   ├── SearchCriteria.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   └── people
│   │   │   │   ├── add.jsp
│   │   │   │   └── find.jsp
│   │   │   └── web.xml
│   │   ├── Customer-Support-v17
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   │   ├── TicketCommentEntity.java
│   │   │   │   │   │   │   ├── TicketEntity.java
│   │   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   │   ├── repositories
│   │   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   ├── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   └── config
│   │   │   │   │   │   └── soapServletContext.xml
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   ├── search.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   ├── web.xml
│   │   │   └── xsd
│   │   │   └── soap
│   │   │   └── support.xsd
│   │   └── Search-Engine
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── DefaultMainService.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── ForumPost.java
│   │   │   │   │   │   └── User.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── MainController.java
│   │   │   │   │   ├── MainService.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── ForumPostRepositoryImpl.java
│   │   │   │   │   │   ├── ForumPostRepository.java
│   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── add.jsp
│   │   │   └── search.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Advanced-Criteria
│   │   ├── Advanced-Criteria.iml
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Criterion.java
│   │   │   │   │   ├── DefaultPersonService.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Gender.java
│   │   │   │   │   │   └── Person.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── MainController.java
│   │   │   │   │   ├── PersonService.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AbstractDomainClassAwareRepository.java
│   │   │   │   │   │   ├── AbstractSearchableJpaRepository.java
│   │   │   │   │   │   ├── PersonRepositoryImpl.java
│   │   │   │   │   │   ├── PersonRepository.java
│   │   │   │   │   │   └── SearchableRepository.java
│   │   │   │   │   ├── SearchCriteria.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   └── people
│   │   │   ├── add.jsp
│   │   │   └── find.jsp
│   │   └── web.xml
│   ├── Customer-Support-v17
│   │   ├── Customer-Support-v17.iml
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── TicketCommentEntity.java
│   │   │   │   │   │   ├── TicketEntity.java
│   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   ├── search.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── Search-Engine
│   ├── database
│   │   └── create.sql
│   ├── pom.xml
│   ├── Search-Engine.iml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── DefaultMainService.java
│   │   │   │   ├── entities
│   │   │   │   │   ├── ForumPost.java
│   │   │   │   │   └── User.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   ├── MainController.java
│   │   │   │   ├── MainService.java
│   │   │   │   ├── repositories
│   │   │   │   │   ├── ForumPostRepositoryImpl.java
│   │   │   │   │   ├── ForumPostRepository.java
│   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   └── UserRepository.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── add.jsp
│   │   └── search.jsp
│   └── web.xml
├── Chapter 24
│   ├── Eclipse
│   │   ├── Advanced-Mappings
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── converters
│   │   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   │   ├── DefaultEverythingService.java
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Address.java
│   │   │   │   │   │   │   ├── Applicant.java
│   │   │   │   │   │   │   ├── AuditedEntity.java
│   │   │   │   │   │   │   ├── BaseEntity.java
│   │   │   │   │   │   │   ├── Employee.java
│   │   │   │   │   │   │   ├── NewsArticle.java
│   │   │   │   │   │   │   ├── Person.java
│   │   │   │   │   │   │   ├── PhoneNumber.java
│   │   │   │   │   │   │   ├── PostalCode.java
│   │   │   │   │   │   │   ├── Resume.java
│   │   │   │   │   │   │   ├── User.java
│   │   │   │   │   │   │   └── VersionedEntity.java
│   │   │   │   │   │   ├── EverythingService.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   │   ├── MainController.java
│   │   │   │   │   │   ├── repositories
│   │   │   │   │   │   │   ├── ApplicantRepository.java
│   │   │   │   │   │   │   ├── EmployeeRepository.java
│   │   │   │   │   │   │   ├── NewsArticleRepository.java
│   │   │   │   │   │   │   ├── PersonRepository.java
│   │   │   │   │   │   │   ├── ResumeRepository.java
│   │   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── home.jsp
│   │   │   │   ├── list-applicants.jsp
│   │   │   │   ├── list-articles.jsp
│   │   │   │   ├── list-employees.jsp
│   │   │   │   ├── list-persons.jsp
│   │   │   │   └── list-users.jsp
│   │   │   └── web.xml
│   │   └── Customer-Support-v18
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   └── JoinResult.java
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── LoggingFilter.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SessionListener.java
│   │   │   │   │   ├── SessionRegistry.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   ├── search.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── IntelliJ
│   ├── Advanced-Mappings
│   │   ├── Advanced-Mappings.iml
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── DefaultEverythingService.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Address.java
│   │   │   │   │   │   ├── Applicant.java
│   │   │   │   │   │   ├── AuditedEntity.java
│   │   │   │   │   │   ├── BaseEntity.java
│   │   │   │   │   │   ├── Employee.java
│   │   │   │   │   │   ├── NewsArticle.java
│   │   │   │   │   │   ├── Person.java
│   │   │   │   │   │   ├── PhoneNumber.java
│   │   │   │   │   │   ├── PostalCode.java
│   │   │   │   │   │   ├── Resume.java
│   │   │   │   │   │   ├── User.java
│   │   │   │   │   │   └── VersionedEntity.java
│   │   │   │   │   ├── EverythingService.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── MainController.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── ApplicantRepository.java
│   │   │   │   │   │   ├── EmployeeRepository.java
│   │   │   │   │   │   ├── NewsArticleRepository.java
│   │   │   │   │   │   ├── PersonRepository.java
│   │   │   │   │   │   ├── ResumeRepository.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── home.jsp
│   │   │   ├── list-applicants.jsp
│   │   │   ├── list-articles.jsp
│   │   │   ├── list-employees.jsp
│   │   │   ├── list-persons.jsp
│   │   │   └── list-users.jsp
│   │   └── web.xml
│   └── Customer-Support-v18
│   ├── Customer-Support-v18.iml
│   ├── database
│   │   └── create.sql
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   └── site
│   │   │   │   ├── AuthenticationController.java
│   │   │   │   ├── AuthenticationFilter.java
│   │   │   │   ├── AuthenticationService.java
│   │   │   │   ├── chat
│   │   │   │   │   ├── ChatController.java
│   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   ├── ChatService.java
│   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   └── JoinResult.java
│   │   │   │   ├── converters
│   │   │   │   │   └── InstantConverter.java
│   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   ├── DefaultSessionRegistry.java
│   │   │   │   ├── DefaultTicketService.java
│   │   │   │   ├── DownloadingView.java
│   │   │   │   ├── entities
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   └── UserPrincipal.java
│   │   │   │   ├── IndexController.java
│   │   │   │   ├── LoggingFilter.java
│   │   │   │   ├── repositories
│   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   └── UserRepository.java
│   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   ├── SessionListController.java
│   │   │   │   ├── SessionListener.java
│   │   │   │   ├── SessionRegistry.java
│   │   │   │   ├── tag
│   │   │   │   │   └── FormatDateTag.java
│   │   │   │   ├── TicketController.java
│   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   ├── TicketService.java
│   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   ├── TimeUtils.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   ├── com
│   │   │   │   └── wrox
│   │   │   │   └── config
│   │   │   │   └── soapServletContext.xml
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   ├── resource
│   │   └── stylesheet
│   │   ├── chat.css
│   │   ├── login.css
│   │   └── main.css
│   └── WEB-INF
│   ├── i18n
│   │   ├── errors_en_US.properties
│   │   ├── messages_en_US.properties
│   │   ├── titles_en_US.properties
│   │   └── validation_en_US.properties
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── chat
│   │   │   ├── chat.jsp
│   │   │   └── list.jsp
│   │   ├── login.jsp
│   │   ├── session
│   │   │   └── list.jsp
│   │   └── ticket
│   │   ├── add.jsp
│   │   ├── list.jsp
│   │   ├── search.jsp
│   │   └── view.jsp
│   ├── tags
│   │   └── template
│   │   ├── basic.tag
│   │   ├── loggedOut.tag
│   │   └── main.tag
│   ├── tld
│   │   └── wrox.tld
│   ├── web.xml
│   └── xsd
│   └── soap
│   └── support.xsd
├── Chapter 26
│   ├── Eclipse
│   │   ├── Authentication-App
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   ├── SecurityBootstrap.java
│   │   │   │   │   │   │   ├── SecurityConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── converters
│   │   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   │   ├── MainController.java
│   │   │   │   │   │   └── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── resources
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   └── WEB-INF
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── admin.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── secure.jsp
│   │   │   │   └── unprotected.jsp
│   │   │   └── web.xml
│   │   └── Customer-Support-v19
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── bootstrap
│   │   │   │   │   │   │   ├── FrameworkBootstrap.java
│   │   │   │   │   │   │   ├── LoggingBootstrap.java
│   │   │   │   │   │   │   └── SecurityBootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SecurityConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── AuthenticationService.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   ├── JoinResult.java
│   │   │   │   │   │   └── SessionDestroyedListener.java
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── PostSecurityLoggingFilter.java
│   │   │   │   │   ├── PreSecurityLoggingFilter.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   ├── search.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── IntelliJ
│   ├── Authentication-App
│   │   ├── Authentication-App.iml
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SecurityBootstrap.java
│   │   │   │   │   │   ├── SecurityConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── MainController.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── admin.jsp
│   │   │   ├── login.jsp
│   │   │   ├── secure.jsp
│   │   │   └── unprotected.jsp
│   │   └── web.xml
│   └── Customer-Support-v19
│   ├── Customer-Support-v19.iml
│   ├── database
│   │   └── create.sql
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── bootstrap
│   │   │   │   │   │   ├── FrameworkBootstrap.java
│   │   │   │   │   │   ├── LoggingBootstrap.java
│   │   │   │   │   │   └── SecurityBootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   ├── SecurityConfiguration.java
│   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   └── site
│   │   │   │   ├── AuthenticationController.java
│   │   │   │   ├── AuthenticationService.java
│   │   │   │   ├── chat
│   │   │   │   │   ├── ChatController.java
│   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   ├── ChatService.java
│   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   ├── JoinResult.java
│   │   │   │   │   └── SessionDestroyedListener.java
│   │   │   │   ├── converters
│   │   │   │   │   └── InstantConverter.java
│   │   │   │   ├── DefaultAuthenticationService.java
│   │   │   │   ├── DefaultTicketService.java
│   │   │   │   ├── DownloadingView.java
│   │   │   │   ├── entities
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   └── UserPrincipal.java
│   │   │   │   ├── IndexController.java
│   │   │   │   ├── PostSecurityLoggingFilter.java
│   │   │   │   ├── PreSecurityLoggingFilter.java
│   │   │   │   ├── repositories
│   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   └── UserRepository.java
│   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   ├── SessionListController.java
│   │   │   │   ├── tag
│   │   │   │   │   └── FormatDateTag.java
│   │   │   │   ├── TicketController.java
│   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   ├── TicketService.java
│   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   ├── TimeUtils.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   ├── com
│   │   │   │   └── wrox
│   │   │   │   └── config
│   │   │   │   └── soapServletContext.xml
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   ├── resource
│   │   └── stylesheet
│   │   ├── chat.css
│   │   ├── login.css
│   │   └── main.css
│   └── WEB-INF
│   ├── i18n
│   │   ├── errors_en_US.properties
│   │   ├── messages_en_US.properties
│   │   ├── titles_en_US.properties
│   │   └── validation_en_US.properties
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── chat
│   │   │   ├── chat.jsp
│   │   │   └── list.jsp
│   │   ├── login.jsp
│   │   ├── session
│   │   │   └── list.jsp
│   │   └── ticket
│   │   ├── add.jsp
│   │   ├── list.jsp
│   │   ├── search.jsp
│   │   └── view.jsp
│   ├── tags
│   │   └── template
│   │   ├── basic.tag
│   │   ├── loggedOut.tag
│   │   └── main.tag
│   ├── tld
│   │   └── wrox.tld
│   ├── web.xml
│   └── xsd
│   └── soap
│   └── support.xsd
├── Chapter 27
│   ├── Eclipse
│   │   └── Customer-Support-v20
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── bootstrap
│   │   │   │   │   │   │   ├── FrameworkBootstrap.java
│   │   │   │   │   │   │   ├── LoggingBootstrap.java
│   │   │   │   │   │   │   └── SecurityBootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SecurityConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   ├── JoinResult.java
│   │   │   │   │   │   └── SessionDestroyedListener.java
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DefaultUserService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── UserAuthority.java
│   │   │   │   │   │   └── UserPrincipal.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── PostSecurityLoggingFilter.java
│   │   │   │   │   ├── PreSecurityLoggingFilter.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   └── UserRepository.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserService.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   ├── search.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── IntelliJ
│   └── Customer-Support-v20
│   ├── Customer-Support-v20.iml
│   ├── database
│   │   └── create.sql
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── bootstrap
│   │   │   │   │   │   ├── FrameworkBootstrap.java
│   │   │   │   │   │   ├── LoggingBootstrap.java
│   │   │   │   │   │   └── SecurityBootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   ├── SecurityConfiguration.java
│   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   └── site
│   │   │   │   ├── AuthenticationController.java
│   │   │   │   ├── chat
│   │   │   │   │   ├── ChatController.java
│   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   ├── ChatService.java
│   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   ├── JoinResult.java
│   │   │   │   │   └── SessionDestroyedListener.java
│   │   │   │   ├── converters
│   │   │   │   │   └── InstantConverter.java
│   │   │   │   ├── DefaultTicketService.java
│   │   │   │   ├── DefaultUserService.java
│   │   │   │   ├── DownloadingView.java
│   │   │   │   ├── entities
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── UserAuthority.java
│   │   │   │   │   └── UserPrincipal.java
│   │   │   │   ├── IndexController.java
│   │   │   │   ├── PostSecurityLoggingFilter.java
│   │   │   │   ├── PreSecurityLoggingFilter.java
│   │   │   │   ├── repositories
│   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   └── UserRepository.java
│   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   ├── SessionListController.java
│   │   │   │   ├── tag
│   │   │   │   │   └── FormatDateTag.java
│   │   │   │   ├── TicketController.java
│   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   ├── TicketService.java
│   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   ├── TimeUtils.java
│   │   │   │   ├── UserService.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   ├── com
│   │   │   │   └── wrox
│   │   │   │   └── config
│   │   │   │   └── soapServletContext.xml
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   ├── resource
│   │   └── stylesheet
│   │   ├── chat.css
│   │   ├── login.css
│   │   └── main.css
│   └── WEB-INF
│   ├── i18n
│   │   ├── errors_en_US.properties
│   │   ├── messages_en_US.properties
│   │   ├── titles_en_US.properties
│   │   └── validation_en_US.properties
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── chat
│   │   │   ├── chat.jsp
│   │   │   └── list.jsp
│   │   ├── login.jsp
│   │   ├── session
│   │   │   └── list.jsp
│   │   └── ticket
│   │   ├── add.jsp
│   │   ├── list.jsp
│   │   ├── search.jsp
│   │   └── view.jsp
│   ├── tags
│   │   └── template
│   │   ├── basic.tag
│   │   ├── loggedOut.tag
│   │   └── main.tag
│   ├── tld
│   │   └── wrox.tld
│   ├── web.xml
│   └── xsd
│   └── soap
│   └── support.xsd
├── Chapter 28
│   ├── Eclipse
│   │   ├── Customer-Support-v21
│   │   │   ├── database
│   │   │   │   └── create.sql
│   │   │   ├── pom.xml
│   │   │   ├── source
│   │   │   │   ├── production
│   │   │   │   │   ├── java
│   │   │   │   │   │   └── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   │   ├── bootstrap
│   │   │   │   │   │   │   │   ├── FrameworkBootstrap.java
│   │   │   │   │   │   │   │   ├── LoggingBootstrap.java
│   │   │   │   │   │   │   │   └── SecurityBootstrap.java
│   │   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   │   └── site
│   │   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   │   ├── chat
│   │   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   │   ├── JoinResult.java
│   │   │   │   │   │   │   └── SessionDestroyedListener.java
│   │   │   │   │   │   ├── converters
│   │   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   │   ├── DefaultAccessTokenServices.java
│   │   │   │   │   │   ├── DefaultOAuthNonceServices.java
│   │   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   │   ├── DefaultUserService.java
│   │   │   │   │   │   ├── DefaultWebServiceClientService.java
│   │   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   │   ├── entities
│   │   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   │   ├── Nonce.java
│   │   │   │   │   │   │   ├── SigningAccessToken.java
│   │   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   │   ├── UserAuthority.java
│   │   │   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   │   │   └── WebServiceClient.java
│   │   │   │   │   │   ├── IndexController.java
│   │   │   │   │   │   ├── OAuthNonceServices.java
│   │   │   │   │   │   ├── OAuthSigningTokenAuthenticationFilter.java
│   │   │   │   │   │   ├── PostSecurityLoggingFilter.java
│   │   │   │   │   │   ├── PreSecurityLoggingFilter.java
│   │   │   │   │   │   ├── repositories
│   │   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   │   ├── NonceRepository.java
│   │   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   │   ├── SigningAccessTokenRepository.java
│   │   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   │   │   └── WebServiceClientRepository.java
│   │   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   │   ├── SigningAccessTokenServices.java
│   │   │   │   │   │   ├── tag
│   │   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   │   ├── TicketController.java
│   │   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   │   ├── TicketService.java
│   │   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   │   ├── UserService.java
│   │   │   │   │   │   ├── validation
│   │   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   │   └── WebServiceClientService.java
│   │   │   │   │   └── resources
│   │   │   │   │   ├── com
│   │   │   │   │   │   └── wrox
│   │   │   │   │   │   └── config
│   │   │   │   │   │   ├── securityConfiguration.xml
│   │   │   │   │   │   └── soapServletContext.xml
│   │   │   │   │   └── log4j2.xml
│   │   │   │   └── test
│   │   │   │   └── resources
│   │   │   │   └── log4j2-test.xml
│   │   │   └── web
│   │   │   ├── resource
│   │   │   │   └── stylesheet
│   │   │   │   ├── chat.css
│   │   │   │   ├── login.css
│   │   │   │   └── main.css
│   │   │   └── WEB-INF
│   │   │   ├── i18n
│   │   │   │   ├── errors_en_US.properties
│   │   │   │   ├── messages_en_US.properties
│   │   │   │   ├── titles_en_US.properties
│   │   │   │   └── validation_en_US.properties
│   │   │   ├── jsp
│   │   │   │   ├── base.jspf
│   │   │   │   └── view
│   │   │   │   ├── chat
│   │   │   │   │   ├── chat.jsp
│   │   │   │   │   └── list.jsp
│   │   │   │   ├── login.jsp
│   │   │   │   ├── oauth
│   │   │   │   │   ├── authorize.jsp
│   │   │   │   │   └── error.jsp
│   │   │   │   ├── session
│   │   │   │   │   └── list.jsp
│   │   │   │   └── ticket
│   │   │   │   ├── add.jsp
│   │   │   │   ├── list.jsp
│   │   │   │   ├── search.jsp
│   │   │   │   └── view.jsp
│   │   │   ├── tags
│   │   │   │   └── template
│   │   │   │   ├── basic.tag
│   │   │   │   ├── loggedOut.tag
│   │   │   │   └── main.tag
│   │   │   ├── tld
│   │   │   │   └── wrox.tld
│   │   │   ├── web.xml
│   │   │   └── xsd
│   │   │   └── soap
│   │   │   └── support.xsd
│   │   └── OAuth-Client
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SecurityBootstrap.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── Attachment.java
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   │   ├── HomeController.java
│   │   │   │   │   ├── OAuth2SigningRestTemplate.java
│   │   │   │   │   ├── SupportController.java
│   │   │   │   │   ├── Ticket.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   └── validation
│   │   │   │   │   ├── Email.java
│   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   └── securityConfiguration.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   └── WEB-INF
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── index.jsp
│   │   │   ├── login.jsp
│   │   │   └── support.jsp
│   │   └── web.xml
│   └── IntelliJ
│   ├── Customer-Support-v21
│   │   ├── Customer-Support-v21.iml
│   │   ├── database
│   │   │   └── create.sql
│   │   ├── pom.xml
│   │   ├── source
│   │   │   ├── production
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── wrox
│   │   │   │   │   ├── config
│   │   │   │   │   │   ├── annotation
│   │   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   │   └── WebController.java
│   │   │   │   │   │   ├── bootstrap
│   │   │   │   │   │   │   ├── FrameworkBootstrap.java
│   │   │   │   │   │   │   ├── LoggingBootstrap.java
│   │   │   │   │   │   │   └── SecurityBootstrap.java
│   │   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   │   ├── SoapServletContextConfiguration.java
│   │   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   │   ├── exception
│   │   │   │   │   │   ├── InternationalizedException.java
│   │   │   │   │   │   ├── LoggedException.java
│   │   │   │   │   │   └── ResourceNotFoundException.java
│   │   │   │   │   └── site
│   │   │   │   │   ├── AuthenticationController.java
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── ChatController.java
│   │   │   │   │   │   ├── ChatEndpoint.java
│   │   │   │   │   │   ├── ChatMessageCodec.java
│   │   │   │   │   │   ├── ChatMessage.java
│   │   │   │   │   │   ├── ChatService.java
│   │   │   │   │   │   ├── ChatSession.java
│   │   │   │   │   │   ├── CreateResult.java
│   │   │   │   │   │   ├── DefaultChatService.java
│   │   │   │   │   │   ├── JoinResult.java
│   │   │   │   │   │   └── SessionDestroyedListener.java
│   │   │   │   │   ├── converters
│   │   │   │   │   │   └── InstantConverter.java
│   │   │   │   │   ├── DefaultAccessTokenServices.java
│   │   │   │   │   ├── DefaultOAuthNonceServices.java
│   │   │   │   │   ├── DefaultTicketService.java
│   │   │   │   │   ├── DefaultUserService.java
│   │   │   │   │   ├── DefaultWebServiceClientService.java
│   │   │   │   │   ├── DownloadingView.java
│   │   │   │   │   ├── entities
│   │   │   │   │   │   ├── Attachment.java
│   │   │   │   │   │   ├── Nonce.java
│   │   │   │   │   │   ├── SigningAccessToken.java
│   │   │   │   │   │   ├── TicketComment.java
│   │   │   │   │   │   ├── Ticket.java
│   │   │   │   │   │   ├── UserAuthority.java
│   │   │   │   │   │   ├── UserPrincipal.java
│   │   │   │   │   │   └── WebServiceClient.java
│   │   │   │   │   ├── IndexController.java
│   │   │   │   │   ├── OAuthNonceServices.java
│   │   │   │   │   ├── OAuthSigningTokenAuthenticationFilter.java
│   │   │   │   │   ├── PostSecurityLoggingFilter.java
│   │   │   │   │   ├── PreSecurityLoggingFilter.java
│   │   │   │   │   ├── repositories
│   │   │   │   │   │   ├── AttachmentRepository.java
│   │   │   │   │   │   ├── NonceRepository.java
│   │   │   │   │   │   ├── SearchableRepository.java
│   │   │   │   │   │   ├── SearchResult.java
│   │   │   │   │   │   ├── SigningAccessTokenRepository.java
│   │   │   │   │   │   ├── TicketCommentRepository.java
│   │   │   │   │   │   ├── TicketRepositoryImpl.java
│   │   │   │   │   │   ├── TicketRepository.java
│   │   │   │   │   │   ├── UserRepository.java
│   │   │   │   │   │   └── WebServiceClientRepository.java
│   │   │   │   │   ├── RestExceptionHandler.java
│   │   │   │   │   ├── SessionListController.java
│   │   │   │   │   ├── SigningAccessTokenServices.java
│   │   │   │   │   ├── tag
│   │   │   │   │   │   └── FormatDateTag.java
│   │   │   │   │   ├── TicketController.java
│   │   │   │   │   ├── TicketRestEndpoint.java
│   │   │   │   │   ├── TicketService.java
│   │   │   │   │   ├── TicketSoapEndpoint.java
│   │   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   │   ├── TimeUtils.java
│   │   │   │   │   ├── UserService.java
│   │   │   │   │   ├── validation
│   │   │   │   │   │   ├── Email.java
│   │   │   │   │   │   ├── NotBlank.java
│   │   │   │   │   │   └── NotBlankValidator.java
│   │   │   │   │   └── WebServiceClientService.java
│   │   │   │   └── resources
│   │   │   │   ├── com
│   │   │   │   │   └── wrox
│   │   │   │   │   └── config
│   │   │   │   │   ├── securityConfiguration.xml
│   │   │   │   │   └── soapServletContext.xml
│   │   │   │   └── log4j2.xml
│   │   │   └── test
│   │   │   └── resources
│   │   │   └── log4j2-test.xml
│   │   └── web
│   │   ├── resource
│   │   │   └── stylesheet
│   │   │   ├── chat.css
│   │   │   ├── login.css
│   │   │   └── main.css
│   │   └── WEB-INF
│   │   ├── i18n
│   │   │   ├── errors_en_US.properties
│   │   │   ├── messages_en_US.properties
│   │   │   ├── titles_en_US.properties
│   │   │   └── validation_en_US.properties
│   │   ├── jsp
│   │   │   ├── base.jspf
│   │   │   └── view
│   │   │   ├── chat
│   │   │   │   ├── chat.jsp
│   │   │   │   └── list.jsp
│   │   │   ├── login.jsp
│   │   │   ├── oauth
│   │   │   │   ├── authorize.jsp
│   │   │   │   └── error.jsp
│   │   │   ├── session
│   │   │   │   └── list.jsp
│   │   │   └── ticket
│   │   │   ├── add.jsp
│   │   │   ├── list.jsp
│   │   │   ├── search.jsp
│   │   │   └── view.jsp
│   │   ├── tags
│   │   │   └── template
│   │   │   ├── basic.tag
│   │   │   ├── loggedOut.tag
│   │   │   └── main.tag
│   │   ├── tld
│   │   │   └── wrox.tld
│   │   ├── web.xml
│   │   └── xsd
│   │   └── soap
│   │   └── support.xsd
│   └── OAuth-Client
│   ├── database
│   │   └── create.sql
│   ├── OAuth-Client.iml
│   ├── pom.xml
│   ├── source
│   │   ├── production
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── wrox
│   │   │   │   ├── config
│   │   │   │   │   ├── annotation
│   │   │   │   │   │   ├── RestEndpointAdvice.java
│   │   │   │   │   │   ├── RestEndpoint.java
│   │   │   │   │   │   └── WebController.java
│   │   │   │   │   ├── Bootstrap.java
│   │   │   │   │   ├── RestServletContextConfiguration.java
│   │   │   │   │   ├── RootContextConfiguration.java
│   │   │   │   │   ├── SecurityBootstrap.java
│   │   │   │   │   └── WebServletContextConfiguration.java
│   │   │   │   └── site
│   │   │   │   ├── Attachment.java
│   │   │   │   ├── AuthenticationController.java
│   │   │   │   ├── converters
│   │   │   │   │   └── InstantConverter.java
│   │   │   │   ├── exception
│   │   │   │   │   ├── ResourceNotFoundException.java
│   │   │   │   │   └── RestExceptionHandler.java
│   │   │   │   ├── HomeController.java
│   │   │   │   ├── OAuth2SigningRestTemplate.java
│   │   │   │   ├── SupportController.java
│   │   │   │   ├── Ticket.java
│   │   │   │   ├── TicketWebServiceList.java
│   │   │   │   ├── UserPrincipal.java
│   │   │   │   └── validation
│   │   │   │   ├── Email.java
│   │   │   │   ├── NotBlank.java
│   │   │   │   └── NotBlankValidator.java
│   │   │   └── resources
│   │   │   ├── com
│   │   │   │   └── wrox
│   │   │   │   └── config
│   │   │   │   └── securityConfiguration.xml
│   │   │   └── log4j2.xml
│   │   └── test
│   │   └── resources
│   │   └── log4j2-test.xml
│   └── web
│   └── WEB-INF
│   ├── jsp
│   │   ├── base.jspf
│   │   └── view
│   │   ├── index.jsp
│   │   ├── login.jsp
│   │   └── support.jsp
│   └── web.xml
└── README.txt

2245 directories, 3489 files

标签:

实例下载地址

Java Web高级编程(源码)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警