MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap
Revision 3 as of 2020-06-24 17:43:28
  • Java
  • JBoss5
  • WAR

WAR Contacts

  • wget https://github.com/twbs/bootstrap/releases/download/v4.5.0/bootstrap-4.5.0-dist.zip

  • wget https://code.jquery.com/jquery-3.5.1.min.js

External files:

  • src/main/webapp/js/bootstrap.min.js
  • src/main/webapp/js/jquery-3.5.1.min.js
  • src/main/webapp/css/bootstrap.min.css

deploy_to_target.sh

rm ../warcontacts.tgz
tar cvzf ../warcontacts.tgz ../warcontacts
cp ../warcontacts.tgz ../target/
docker exec -it jboss5_container /bin/sh -c 'cd /app;rm -rf warcontacts; tar xvzf warcontacts.tgz'
docker exec -it jboss5_container /bin/sh -c 'cd /app/warcontacts; rm  /app/jboss-5.1.0.GA/server/default/deploy/warcontacts-0.0.1.war; mvn clean install;'
docker exec -it jboss5_container /bin/sh -c 'cp /app/warcontacts/target/warcontacts-0.0.1.war /app/jboss-5.1.0.GA/server/default/deploy'

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.allowed.bitarus</groupId>
        <artifactId>warcontacts</artifactId>
        <version>0.0.1</version>
        <packaging>war</packaging>
        <dependencies>
                <dependency>
                        <groupId>javaee</groupId>
                        <artifactId>javaee-api</artifactId>
                        <version>5</version>
                        <scope>provided</scope>
                </dependency>
                <dependency>
                        <groupId>org.allowed.bitarus</groupId>
                        <artifactId>ejbcontacts</artifactId>
                        <version>0.0.1</version>
                        <scope>provided</scope>
                </dependency>
        </dependencies>
        <build>
                <plugins>
                        <plugin>
                                <artifactId>maven-compiler-plugin</artifactId>
                                <configuration>
                                        <source>1.5</source>
                                        <target>1.5</target>
                                </configuration>
                        </plugin>
                </plugins>
        </build>
</project>

src/main/java/org/allowed/bitarus/Handler.java

package org.allowed.bitarus;

import java.util.logging.Logger;
import java.util.logging.Level;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.naming.InitialContext;
import java.io.IOException;
import java.util.List;
import javax.naming.NamingEnumeration;
import javax.naming.NameClassPair;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

public class Handler {
        private static final String CONTACTS_WS_LOCAL = "ContactsWS/local";
        private ServletRequest request;
        private ServletResponse response;
        private JspWriter out;

        public Handler(ServletRequest request, ServletResponse response, JspWriter out) {
                this.request = request;
                this.response = response;
                this.out = out;
        }

        public Handler(PageContext pageContext) {
                this.request = pageContext.getRequest();
                this.response = pageContext.getResponse();
                this.out = (JspWriter) pageContext.getAttribute(PageContext.OUT);

                HttpServletRequest hsr = (HttpServletRequest) this.request;
                System.out.println(String.format("Current method %s", hsr.getMethod()));
                System.out.println(String.format("Path %s", hsr.getServletPath()));

                if ("POST".equals(hsr.getMethod())) {
                        Map<String, String> params = hsr.getParameterMap();
                        for (String key : params.keySet()) {
                                System.out.println(String.format("%s:%s", key, hsr.getParameter(key)));
                        }

                        handleAddPost(hsr);
                        handleDeletePost(hsr);
                        handleUpdatePost(hsr);
                }
        }

        private void handleUpdatePost(HttpServletRequest hsr) {
                if ("/update.jsp".equals(hsr.getServletPath())) {
                        try {
                                InitialContext context = new InitialContext();
                                ContactsLocal contacts = (ContactsLocal) context.lookup(CONTACTS_WS_LOCAL);
                                long id = Integer.parseInt(hsr.getParameter("cid"));
                                String firstName = hsr.getParameter("firstname");
                                String lastName = hsr.getParameter("lastname");
                                String address = hsr.getParameter("address");
                                String phoneNumber = hsr.getParameter("phonenumber");
                                contacts.edit(id, firstName, lastName, address, phoneNumber);
                                redirectToIndex(hsr);
                        } catch (Exception ex) {
                        }
                }
        }

        private void handleDeletePost(HttpServletRequest hsr) {
                if ("/delete.jsp".equals(hsr.getServletPath())) {
                        try {
                                InitialContext context = new InitialContext();
                                ContactsLocal contacts = (ContactsLocal) context.lookup(CONTACTS_WS_LOCAL);
                                contacts.remove(Integer.parseInt(hsr.getParameter("id")));
                                redirectToIndex(hsr);
                        } catch (Exception ex) {
                        }
                }
        }

        private void handleAddPost(HttpServletRequest hsr) {
                if ("/add.jsp".equals(hsr.getServletPath())) {
                        try {
                                InitialContext context = new InitialContext();
                                ContactsLocal contacts = (ContactsLocal) context.lookup(CONTACTS_WS_LOCAL);
                                contacts.add(hsr.getParameter("firstname"), hsr.getParameter("lastname"), hsr.getParameter("address"),
                                                hsr.getParameter("phonenumber"));
                                redirectToIndex(hsr);
                        } catch (Exception ex) {
                        }
                }
        }

        private void redirectToIndex(HttpServletRequest hsr) throws IOException {
                ((HttpServletResponse) this.response).sendRedirect(hsr.getContextPath() + "/index.jsp");
        }

        public void writeHandler() {
                try {
                        this.out.println(String.format("<p>Handler up %s</p>", this.request.getParameter("user")));
                } catch (Exception ex) {
                }
        }

        public void writeIP() {
                try {
                        this.out.print("!!! Your IP address is " + this.request.getRemoteAddr());
                } catch (Exception ex) {
                }
        }

        public List<ContactEntity> getAllContacts() {
                List<ContactEntity> ret = null;
                try {
                        InitialContext context = new InitialContext();

                        ContactsLocal contacts = (ContactsLocal) context.lookup(CONTACTS_WS_LOCAL);
                        ret = contacts.getAll();
                } catch (Exception ex) {
                }
                return ret;
        }

        public ContactEntity getContact(long id) {

                ContactEntity ret = null;
                try {
                        InitialContext context = new InitialContext();

                        ContactsLocal contacts = (ContactsLocal) context.lookup(CONTACTS_WS_LOCAL);
                        ret = contacts.get(id);
                } catch (Exception ex) {
                }

                return ret;
        }
}

src/main/webapp/add.jsp

<%@page import="org.allowed.bitarus.Handler, java.util.List, org.allowed.bitarus.ContactEntity" %>
<% Handler h = new Handler(pageContext); %>
<html>
    <head>
        <jsp:include page="head.jsp" />  
    </head>
    <body>       
        <jsp:include page="nav.jsp" />
        <div class="container topspace">
            <div class="row"> 
                <div class="col-sm-2"></div>
                <div class="col-sm-8">    
                    <form  action="add.jsp" method="post"  >
                        <label for="firstname">First name:</label><br/>
                        <input type="text" id="firstname" name="firstname" class="form-control"><br/>
                        <label for="lastname">Last name:</label><br/>
                        <input type="text" id="lastname" name="lastname" class="form-control"><br/>
                        <label for="address">Address::</label><br/>
                        <input type="text" id="Address:" name="address" class="form-control"><br/>
                        <label for="phonenumber">Phone number:</label><br/>
                        <input type="text" id="phonenumber" name="phonenumber" class="form-control"><br/>
                        <input type="submit" value="Add"  class="form-control btn btn-primary button"/>
                    </form>    
                </div> 
                <div class="col-sm-2"></div>   
            </div>
        </div>          
    </body>
</html>

src/main/webapp/css/warcontacts.css

.button{margin-top:2px; margin-bottom:2px;}
.topspace { padding-top: 10px; }    

src/main/webapp/delete.jsp

<%@page import="org.allowed.bitarus.Handler, java.util.List, org.allowed.bitarus.ContactEntity" %>
<% Handler h = new Handler(pageContext); %>
<html>
    <head>
        <jsp:include page="head.jsp" />  
    </head>
    <body>       
        <% ContactEntity ci = h.getContact( Integer.parseInt( request.getParameter("id") ) );  %> 
        <jsp:include page="nav.jsp" />
        <div class="container  topspace">
            <div class="row"> 
                <div class="col-sm-2"></div>
                <div class="col-sm-8">         
                    <% if(ci!=null) { %>
                        <p><strong>Id:</strong>  <%= ci.getId() %></p>
                        <p><strong>First name:</strong>  <%= ci.getFirstName() %></p>
                        <p><strong>Last name:</strong>  <%= ci.getLastName() %></p>
                        <p><strong>Creation date:</strong> <%= ci.getCreationDate() %></p>
                        <p><strong>Address:</strong>  <%= ci.getAddress() %></p>
                        <p><strong>Phone:</strong>  <%= ci.getPhoneNumber() %></p>

                        <form action="delete.jsp" method="post">
                            <input type="hidden" id="id" name="id" value="<%=ci.getId()%>"  />
                            <input type="submit" class="form-control btn btn-primary button" value="Delete">
                        </form>
                    <% }  %>
                </div> 
                <div class="col-sm-2"></div>   
            </div>
        </div>              
    </body>
</html>

src/main/webapp/head.jsp

  <link rel="stylesheet" href="css/bootstrap.min.css"/>
  <link rel="stylesheet" href="css/warcontacts.css"/>
  <script src="js/jquery-3.5.1.min.js"></script>
  <script src="js/bootstrap.min.js" ></script>

src/main/webapp/index.jsp

<%@page import="org.allowed.bitarus.Handler, java.util.List, org.allowed.bitarus.ContactEntity" %>
<% Handler h = new Handler(pageContext); %>
<html>
        <head>
                <jsp:include page="head.jsp" />  
        </head>
    <body>        
        <jsp:include page="nav.jsp" />      
                <div class="container topspace">
                <div class="row"> 
                        <div class="col-sm-2"></div>
                        <div class="col-sm-8">
                                <% List<ContactEntity> contacts = h.getAllContacts(); %>
                                <a href="add.jsp" class="btn btn-primary button">Add</a>
                                <table class="table table-stripped" >
                                    <tr>
                                                        <th>FirstName</th>
                                                        <th>LastName</th>
                                                        <th>Actions</th>
                                </tr>
                                        <% for(int i=0; i<contacts.size() ;i++){  %>
                                        <tr>
                                                                <% ContactEntity contact = ((ContactEntity)contacts.get(i));  %>
                                                                <td><%= contact.getFirstName() %></td>
                                                                <td><%= contact.getLastName() %></td>
                                                                <td>
                                                                <a href="view.jsp?id=<%=contact.getId()%>" class="btn btn-primary button">View</a>
                                                                        <a href="update.jsp?id=<%=contact.getId()%>" class="btn btn-primary button">Update</a>
                                                                        <a href="delete.jsp?id=<%=contact.getId()%>" class="btn btn-primary button">Delete</a>     
                                                                </td>
                                        </tr>
                                        <%}%>
                               </table>
                        </div> 
                        <div class="col-sm-2"></div>   
                </div>
                </div> 
        </body>
</html>

src/main/webapp/nav.jsp

<nav class="navbar navbar-dark bg-dark navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="index.jsp">Contacts</a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
              <li class="active"><a href="index.jsp">List</a></li>
          </ul>
        </div>
    </div>
</nav>

src/main/webapp/update.jsp

<%@page import="org.allowed.bitarus.Handler, java.util.List, org.allowed.bitarus.ContactEntity" %>
<% Handler h = new Handler(pageContext); %>
<html>
    <head>
        <jsp:include page="head.jsp" />  
    </head>
    <body>       
        <jsp:include page="nav.jsp" />
        <div class="container topspace">
            <div class="row"> 
                <div class="col-sm-2"></div>
                <div class="col-sm-8">              
                                        <% if( request.getParameter("id") != null ) { %>
                                        <% ContactEntity ci = h.getContact( Integer.parseInt( request.getParameter("id") ) );  %>
                                                <form  action="update.jsp" method="post"  >
                                                        <label for="firstname">First name:</label><br/>
                                                        <input class="form-control" type="text" id="firstname" name="firstname" value="<%= ci.getFirstName() %>"/><br/>
                                                        <label for="lastname">Last name:</label><br/>
                                                        <input class="form-control" type="text" id="lastname" name="lastname" value="<%= ci.getLastName() %>" /><br/>
                                                        <label for="address">Address::</label><br/>
                                                        <input class="form-control" type="text" id="Address:" name="address" value="<%= ci.getAddress() %>"/><br/>
                                                        <label for="phonenumber">Phone number:</label><br/>
                                                        <input class="form-control" type="text" id="phonenumber" name="phonenumber" value="<%= ci.getPhoneNumber() %>"/><br/>
                                                        <input class="form-control" type="hidden" id="cid" name="cid" value="<%=ci.getId()%>"/> 
                                                        <input type="submit" value="Update" class="form-control btn btn-primary button" >
                                                </form>
                                        <% } %> 
                </div> 
                <div class="col-sm-2"></div>   
            </div>
        </div>                   
    </body>
</html>

src/main/webapp/view.jsp

<%@page import="org.allowed.bitarus.Handler, java.util.List, org.allowed.bitarus.ContactEntity" %>
<% Handler h = new Handler(pageContext); %>
<html>
    <head>
        <jsp:include page="head.jsp" />  
    </head>
    <body>       
        <jsp:include page="nav.jsp" />
        <div class="container topspace">
            <div class="row"> 
                <div class="col-sm-2"></div>
                <div class="col-sm-8">    
                    <% ContactEntity ci = h.getContact( Integer.parseInt( request.getParameter("id") ) );  %> 
                    <p><strong>Id:</strong>  <%= ci.getId() %></p>
                    <p><strong>First name:</strong>  <%= ci.getFirstName() %></p>
                    <p><strong>Last name:</strong>  <%= ci.getLastName() %></p>
                    <p><strong>Creation date:</strong> <%= ci.getCreationDate() %></p>
                    <p><strong>Address:</strong>  <%= ci.getAddress() %></p>
                    <p><strong>Phone:</strong>  <%= ci.getPhoneNumber() %></p>
                </div> 
                <div class="col-sm-2"></div>   
            </div>
        </div>         
    </body>
</html>

src/main/webapp/WEB-INF/web.xml

<?xml version="1.0"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>

WAR web app that invokes ejb using JNDI name

  • mvn clean install
  • cp target/warjee5-0.0.1.war /app/jboss-5.1.0.GA/server/default/deploy/warjee5-0.0.1.war

pom.xml

   1 <project xmlns="http://maven.apache.org/POM/4.0.0"
   2         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   3         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   4         <modelVersion>4.0.0</modelVersion>
   5         <groupId>org.allowed.bitarus</groupId>
   6         <artifactId>warjee5</artifactId>
   7         <version>0.0.1</version>
   8         <packaging>war</packaging>
   9         <dependencies>
  10                 <dependency>
  11                         <groupId>javaee</groupId>
  12                         <artifactId>javaee-api</artifactId>
  13                         <version>5</version>
  14                         <scope>provided</scope>
  15                 </dependency>
  16                 <dependency>
  17                     <groupId>org.allowed.bitarus</groupId>
  18                     <artifactId>ejbjee5</artifactId>
  19                     <version>0.0.1</version>
  20                     <scope>provided</scope>
  21                 </dependency>
  22         </dependencies>
  23         <build>
  24                 <sourceDirectory>src</sourceDirectory>
  25                 <plugins>
  26                         <plugin>
  27                                 <artifactId>maven-compiler-plugin</artifactId>
  28                                 <configuration>
  29                                         <source>1.5</source>
  30                                         <target>1.5</target>
  31                                 </configuration>
  32                         </plugin>
  33                 </plugins>
  34         </build>
  35 </project>

src/main/java/org/allowed/bitarus/Handler.java

   1 package org.allowed.bitarus;
   2 
   3 import java.util.logging.Logger;
   4 import java.util.logging.Level;
   5 import javax.servlet.ServletRequest;
   6 import javax.servlet.ServletResponse;
   7 import javax.servlet.jsp.JspWriter;
   8 import javax.servlet.jsp.PageContext;
   9 import javax.naming.InitialContext;
  10 import java.util.List;
  11 import javax.naming.NamingEnumeration;
  12 import javax.naming.NameClassPair;
  13 
  14 public class Handler{
  15     private ServletRequest request;
  16     private ServletResponse response;
  17     private JspWriter out;
  18 
  19     public Handler(ServletRequest request, ServletResponse response,JspWriter out){
  20         this.request = request;
  21         this.response = response;        
  22         this.out = out;
  23     }
  24 
  25     public Handler(PageContext pageContext){
  26         this.request = pageContext.getRequest();
  27         this.response = pageContext.getResponse();        
  28         this.out = (JspWriter) pageContext.getAttribute(pageContext.OUT) ;
  29     }
  30     
  31     public void writeHandler(){
  32         try{
  33           this.out.println(String.format("<p>Handler up %s</p>" , this.request.getParameter("user") ));
  34         }
  35         catch(Exception ex){            
  36         }          
  37     }
  38     
  39     public void writeIP(){
  40         try{
  41             this.out.print("!!! Your IP address is " + this.request.getRemoteAddr());
  42         }
  43         catch(Exception ex){            
  44         }          
  45     }
  46  
  47    public void writeAddResults(){
  48       try{
  49           InitialContext context = new InitialContext();
  50           NamingEnumeration<NameClassPair> namingList = context.list("");
  51           while (namingList.hasMore()) {
  52               out.println(namingList.next().getName() + "<br/>" );
  53           }
  54 
  55           AddLocal addLocal = (AddLocal) context.lookup("AddWS/local");
  56           List<AddEntity> list = addLocal.getAll();
  57           for(int idx=0; idx<list.size(); idx++){
  58               this.out.println( list.get(idx).getCreationDate().toString() + "<br/>"  );
  59           }
  60       }
  61       catch(Exception ex){
  62       }
  63    }
  64 }

src/main/java/org/allowed/bitarus/TestBean.java

   1 package org.allowed.bitarus;
   2 import java.util.logging.Logger;
   3 import java.util.logging.Level;
   4 
   5 public class TestBean{
   6     private String name;
   7     private Logger logger;
   8     
   9     public TestBean(){
  10         this.logger = Logger.getLogger(this.getClass().getName() );
  11         this.logger.log(Level.INFO,"Created test bean");
  12         this.name="Ioooo";
  13     }   
  14     
  15     public String getName(){
  16         this.logger.info("getName called");
  17         return this.name;        
  18     }
  19     
  20     public void setName(String name){
  21         this.name=name;        
  22     }
  23 }

src/main/webapp/WEB-INF/web.xml

   1 <?xml version="1.0"?>
   2 <web-app version="2.5"
   3    xmlns="http://java.sun.com/xml/ns/javaee"
   4    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   5    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   6    <servlet>
   7         <servlet-name>index</servlet-name>
   8         <jsp-file>/index.jsp</jsp-file>
   9     </servlet>
  10     <servlet-mapping>
  11         <servlet-name>index</servlet-name>
  12         <url-pattern>/index**</url-pattern>
  13     </servlet-mapping>
  14    <servlet>
  15         <servlet-name>otherindex</servlet-name>
  16         <jsp-file>/otherindex.jsp</jsp-file>
  17     </servlet>
  18     <servlet-mapping>
  19         <servlet-name>otherindex</servlet-name>
  20         <url-pattern>/otherindex**</url-pattern>
  21     </servlet-mapping>
  22 </web-app>

src/main/webapp/index.jsp

   1 <%@page import="org.allowed.bitarus.Handler" %>
   2 <jsp:useBean id="test" class="org.allowed.bitarus.TestBean" />
   3 <% //Handler h = new Handler(request,response,out); %>
   4 <% Handler h = new Handler(pageContext); %>
   5 <html>
   6     <body>        
   7         <p>Hello</p>
   8         <p>World <jsp:getProperty name="test" property="name" /> </p>
   9         <% h.writeHandler(); %>
  10         <h2><% out.print("Your IP address is " + request.getRemoteAddr()); %></h2>
  11         <h3><% h.writeIP(); %></h3>
  12         <h3><% h.writeAddResults(); %></h3>
  13     </body>
  14 </html>

src/main/webapp/otherindex.jsp

   1 <%@page import="org.allowed.bitarus.Handler" %>
   2 <jsp:useBean id="test" class="org.allowed.bitarus.TestBean" />
   3 <% //Handler h = new Handler(request,response,out); %>
   4 <% Handler h = new Handler(pageContext); %>
   5 <html>
   6     <body>        
   7         <p>Other Hello</p>
   8         <p>World <jsp:getProperty name="test" property="name" /> </p>
   9         <% h.writeHandler(); %>
  10         <h2><% out.print("Your IP address is " + request.getRemoteAddr()); %></h2>
  11         <h3><% h.writeIP(); %></h3>
  12     </body>
  13 </html>
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01