| Size: 5866 Comment:  | Size: 13952 Comment:  | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 2: | Line 2: | 
| * JEE5 certified | * JEE5 certified * Java EE 5 (May 11, 2006) (Java Servlet 2.5, JSP 2.1, JSTL 1.2, JSF 1.2, EJB 3.0, JDBC 3.0) | 
| Line 4: | Line 5: | 
| * https://docs.oracle.com/javaee/5/tutorial/doc/ | |
| Line 6: | Line 8: | 
| * Requires jdk-1_5_0_22-linux-amd64.bin from Oracle to run * run.sh -c options :minimal default all standard web {{attachment:jeeTiers.png}} | |
| Line 9: | Line 14: | 
| == Locally on debian buster == | |
| Line 10: | Line 17: | 
| cp jdk-1_5_0_22-linux-amd64.bin ~ cd ~ ./jdk-1_5_0_22-linux-amd64.bin unzip jboss-5.1.0.GA.zip JAVA_HOME=jdk1.5.0_22/ jboss-5.1.0.GA/bin/run.sh -b 0.0.0.0 http://127.0.0.1:8080/ wget https://archive.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip unzip apache-maven-3.1.1-bin.zip JAVA_HOME=jdk1.5.0_22/ ~/apache-maven-3.1.1/bin/mvn -version JAVA_HOME=~/jdk1.5.0_22/ ~/apache-maven-3.1.1/bin/mvn clean install }}} == Docker == Dockerfile {{{ FROM ubuntu:16.04 RUN apt-get update && apt-get install -y openssh-server unzip openjdk-8-jdk net-tools maven vim RUN mkdir /var/run/sshd RUN echo 'root:screencast' | chpasswd RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # SSH login fix. Otherwise user is kicked off after login RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd ENV NOTVISIBLE "in users profile" RUN echo "export VISIBLE=now" >> /etc/profile RUN useradd userx RUN echo 'userx:userx' | chpasswd EXPOSE 22 8080 8081 8009 8009 CMD ["/usr/sbin/sshd", "-D"] }}} {{{#!highlight bash | |
| Line 13: | Line 58: | 
| Line 15: | Line 59: | 
| docker build -t docker_test . | docker build -t docker_jboss5 . | 
| Line 17: | Line 62: | 
| docker run -d -P --name test_container1 --mount type=bind,source="$(pwd)"/target,target=/app docker_test | docker run -d -p 8080:8080 --name jboss5_container  --mount type=bind,source="$(pwd)"/target,target=/app  docker_jboss5 #docker run -d -P --name jboss5_container --mount type=bind,source="$(pwd)"/target,target=/app docker_jboss5 | 
| Line 19: | Line 65: | 
| docker exec -it test_container1 bash apt install unzip openjdk-8-jdk net-tools vim apt remove openjdk-8-jre-headless:amd64 | docker exec -it jboss5_container bash | 
| Line 27: | Line 70: | 
| root@681bc2ea28fc:/app# jdk1.5.0_22/bin/java -version java version "1.5.0_22" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode) /app/jdk1.5.0_22/bin/java -jar run.jar | /app# jdk1.5.0_22/bin/java -version #java version "1.5.0_22" #Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) #Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode) #/app/jdk1.5.0_22/bin/java -jar run.jar mvn -version #Apache Maven 3.3.9 #Maven home: /usr/share/maven #Java version: 1.8.0_252, vendor: Private Build #Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre #Default locale: en_US, platform encoding: ANSI_X3.4-1968 #OS name: "linux", version: "4.19.0-6-amd64", arch: "amd64", family: "unix" | 
| Line 35: | Line 86: | 
| ./run.sh -b 0.0.0.0 }}} == Example EJB for jboss5 == | JAVA_HOME=/app/jdk1.5.0_22 ./run.sh -c all -b 0.0.0.0 }}} == Example EJB for jboss5 in docker container == {{attachment:ejbjarFiles.png}} * docker exec -it jboss5_container bash * cd /app/ejbjee5 | 
| Line 73: | Line 126: | 
| ./src/main/java/org/allowed/bitarus/ScheduleRemote.java {{{ | === ./src/main/java/org/allowed/bitarus/ScheduleRemote.java === {{{#!highlight java | 
| Line 85: | Line 138: | 
| ./src/main/java/org/allowed/bitarus/ScheduleLocal.java {{{ | === ./src/main/java/org/allowed/bitarus/ScheduleLocal.java === {{{#!highlight java | 
| Line 97: | Line 150: | 
| ./src/main/java/org/allowed/bitarus/ScheduleWS.java {{{ | === ./src/main/java/org/allowed/bitarus/ScheduleWS.java === {{{#!highlight java | 
| Line 117: | Line 170: | 
| ./src/main/resources/META-INF/ejb-jar.xml {{{ | === ./src/main/resources/META-INF/ejb-jar.xml === {{{#!highlight java | 
| Line 136: | Line 189: | 
| ./pom.xml {{{ | === ./pom.xml === {{{#!highlight xml | 
| Line 146: | Line 199: | 
| <dependencies> <dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</version> <scope>provided</scope> </dependency> </dependencies> <build> <sourceDirectory>src/main/java</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> }}} * ./SoapUI-5.5.0 * new soap project * initial wsdl: http://127.0.0.1:8080/ejbjee5-0.0.1/ScheduleWS?wsdl * http://127.0.0.1:8080/ejbjee5-0.0.1/ScheduleWS {{{#!highlight xml <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bit="http://bitarus.allowed.org/"> <soapenv:Header/> <soapenv:Body> <bit:addSchedule> <arg0>1</arg0> <arg1>2</arg1> </bit:addSchedule> </soapenv:Body> </soapenv:Envelope> }}} {{{#!highlight xml <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <ns2:addScheduleResponse xmlns:ns2="http://bitarus.allowed.org/"> <return>3</return> </ns2:addScheduleResponse> </env:Body> </env:Envelope> }}} == Example WAR for JBoss5 in docker container == {{attachment:warFile.png}} * mvn clean install * cp /app/warjee5/target/warjee5-0.0.1.war /app/jboss-5.1.0.GA/server/default/deploy * http://127.0.0.1:8080//warjee5-0.0.1/otherindex.jsp === src/main/java/org/allowed/bitarus/TestBean.java === {{{#!highlight java package org.allowed.bitarus; import java.util.logging.Logger; import java.util.logging.Level; public class TestBean{ private String name; private Logger logger; public TestBean(){ this.logger = Logger.getLogger(this.getClass().getName() ); this.logger.log(Level.INFO,"Created test bean"); this.name="Ioooo"; } public String getName(){ this.logger.info("getName called"); return this.name; } public void setName(String name){ this.name=name; } } }}} === src/main/java/org/allowed/bitarus/Handler.java === {{{#!highlight 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; public class Handler{ 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) ; } 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){ } } } }}} === src/main/webapp/otherindex.jsp === {{{#!highlight html <%@page import="org.allowed.bitarus.Handler" %> <jsp:useBean id="test" class="org.allowed.bitarus.TestBean" /> <% //Handler h = new Handler(request,response,out); %> <% Handler h = new Handler(pageContext); %> <html> <body> <p>Other Hello</p> <p>World <jsp:getProperty name="test" property="name" /> </p> <% h.writeHandler(); %> <h2><% out.print("Your IP address is " + request.getRemoteAddr()); %></h2> <h3><% h.writeIP(); %></h3> </body> </html> }}} === src/main/webapp/index.jsp === {{{#!highlight html <%@page import="org.allowed.bitarus.Handler" %> <jsp:useBean id="test" class="org.allowed.bitarus.TestBean" /> <% //Handler h = new Handler(request,response,out); %> <% Handler h = new Handler(pageContext); %> <html> <body> <p>Hello</p> <p>World <jsp:getProperty name="test" property="name" /> </p> <% h.writeHandler(); %> <h2><% out.print("Your IP address is " + request.getRemoteAddr()); %></h2> <h3><% h.writeIP(); %></h3> </body> </html> }}} === src/main/webapp/WEB-INF/web.xml === {{{#!highlight 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"> <servlet> <servlet-name>index</servlet-name> <jsp-file>/index.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>index</servlet-name> <url-pattern>/index**</url-pattern> </servlet-mapping> <servlet> <servlet-name>otherindex</servlet-name> <jsp-file>/otherindex.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>otherindex</servlet-name> <url-pattern>/otherindex**</url-pattern> </servlet-mapping> </web-app> }}} === pom.xml === {{{#!highlight 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>warjee5</artifactId> <version>0.0.1</version> <packaging>war</packaging> | 
JBoss5
- JEE5 certified  - Java EE 5 (May 11, 2006) (Java Servlet 2.5, JSP 2.1, JSTL 1.2, JSF 1.2, EJB 3.0, JDBC 3.0)
 
- https://docs.oracle.com/javaee/5/tutorial/doc/javaeetutorial5.pdf 
- Web container
- EJB container
- Requires jdk-1_5_0_22-linux-amd64.bin from Oracle to run
- run.sh -c options :minimal default all standard web
 
  
 
Locally on debian buster
cp jdk-1_5_0_22-linux-amd64.bin ~ cd ~ ./jdk-1_5_0_22-linux-amd64.bin unzip jboss-5.1.0.GA.zip JAVA_HOME=jdk1.5.0_22/ jboss-5.1.0.GA/bin/run.sh -b 0.0.0.0 http://127.0.0.1:8080/ wget https://archive.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip unzip apache-maven-3.1.1-bin.zip JAVA_HOME=jdk1.5.0_22/ ~/apache-maven-3.1.1/bin/mvn -version JAVA_HOME=~/jdk1.5.0_22/ ~/apache-maven-3.1.1/bin/mvn clean install
Docker
Dockerfile
FROM ubuntu:16.04 RUN apt-get update && apt-get install -y openssh-server unzip openjdk-8-jdk net-tools maven vim RUN mkdir /var/run/sshd RUN echo 'root:screencast' | chpasswd RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # SSH login fix. Otherwise user is kicked off after login RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd ENV NOTVISIBLE "in users profile" RUN echo "export VISIBLE=now" >> /etc/profile RUN useradd userx RUN echo 'userx:userx' | chpasswd EXPOSE 22 8080 8081 8009 8009 CMD ["/usr/sbin/sshd", "-D"]
   1 wget http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA.zip
   2 unzip  jboss-5.1.0.GA.zip
   3 
   4 nano Dockerfile
   5 
   6 docker build -t docker_jboss5 . 
   7 mkdir target
   8 docker run -d -p 8080:8080 --name jboss5_container  --mount type=bind,source="$(pwd)"/target,target=/app  docker_jboss5
   9 #docker run -d -P --name jboss5_container  --mount type=bind,source="$(pwd)"/target,target=/app  docker_jboss5
  10 mv ~/jboss-5.1.0.GA.zip target/
  11 docker exec -it jboss5_container  bash
  12 cd /app
  13 unzip jboss-5.1.0.GA.zip
  14 
  15 ./jdk-1_5_0_22-linux-amd64.bin
  16 /app# jdk1.5.0_22/bin/java -version
  17 #java version "1.5.0_22"
  18 #Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
  19 #Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode)
  20 
  21 #/app/jdk1.5.0_22/bin/java -jar run.jar 
  22 
  23 mvn -version
  24 #Apache Maven 3.3.9
  25 #Maven home: /usr/share/maven
  26 #Java version: 1.8.0_252, vendor: Private Build
  27 #Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
  28 #Default locale: en_US, platform encoding: ANSI_X3.4-1968
  29 #OS name: "linux", version: "4.19.0-6-amd64", arch: "amd64", family: "unix"
  30 
  31 cd /app/jboss-5.1.0.GA/bin
  32 JAVA_HOME=/app/jdk1.5.0_22 ./run.sh -c all -b 0.0.0.0
Example EJB for jboss5 in docker container
 
 
- docker exec -it jboss5_container bash
- cd /app/ejbjee5
- mvn clean compile package
- cp /app/ejbjee5/target/ejbjee5-0.0.1.jar /app/jboss-5.1.0.GA/server/default/deploy/
18:04:14,955 INFO  [JBossASKernel] Created KernelDeployment for: ejbjee5-0.0.1.jar
18:04:14,955 INFO  [JBossASKernel] installing bean: jboss.j2ee:jar=ejbjee5-0.0.1.jar,name=ScheduleWS,service=EJB3
18:04:14,955 INFO  [JBossASKernel]   with dependencies:
18:04:14,955 INFO  [JBossASKernel]   and demands:
18:04:14,955 INFO  [JBossASKernel]      jboss.ejb:service=EJBTimerService
18:04:14,955 INFO  [JBossASKernel]   and supplies:
18:04:14,956 INFO  [JBossASKernel]      Class:org.allowed.bitarus.ScheduleRemote
18:04:14,956 INFO  [JBossASKernel]      jndi:ScheduleWS/local-org.allowed.bitarus.ScheduleLocal
18:04:14,956 INFO  [JBossASKernel]      jndi:ScheduleWS/remote
18:04:14,956 INFO  [JBossASKernel]      Class:org.allowed.bitarus.ScheduleLocal
18:04:14,956 INFO  [JBossASKernel]      jndi:ScheduleWS/local
18:04:14,956 INFO  [JBossASKernel]      jndi:ScheduleWS/remote-org.allowed.bitarus.ScheduleRemote
18:04:14,956 INFO  [JBossASKernel] Added bean(jboss.j2ee:jar=ejbjee5-0.0.1.jar,name=ScheduleWS,service=EJB3) to KernelDeployment of: ejbjee5-0.0.1.jar
18:04:14,957 INFO  [EJB3EndpointDeployer] Deploy AbstractBeanMetaData@542c21cb{name=jboss.j2ee:jar=ejbjee5-0.0.1.jar,name=ScheduleWS,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=[container] constructor=null autowireCandidate=true}
18:04:15,020 INFO  [SessionSpecContainer] Starting jboss.j2ee:jar=ejbjee5-0.0.1.jar,name=ScheduleWS,service=EJB3
18:04:15,020 INFO  [EJBContainer] STARTED EJB: org.allowed.bitarus.ScheduleWS ejbName: ScheduleWS
18:04:15,041 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
        ScheduleWS/remote - EJB3.x Default Remote Business Interface
        ScheduleWS/remote-org.allowed.bitarus.ScheduleRemote - EJB3.x Remote Business Interface
        ScheduleWS/local - EJB3.x Default Local Business Interface
        ScheduleWS/local-org.allowed.bitarus.ScheduleLocal - EJB3.x Local Business Interface
18:04:15,097 INFO  [DefaultEndpointRegistry] register: jboss.ws:context=ejbjee5-0.0.1,endpoint=ScheduleWS
18:04:15,225 INFO  [WSDLFilePublisher] WSDL published to: file:/app/jboss-5.1.0.GA/server/default/data/wsdl/ejbjee5-0.0.1.jar/ScheduleWSService4435570151338675382.wsdl
18:04:15,248 INFO  [TomcatDeployment] deploy, ctxPath=/ejbjee5-0.0.1
./src/main/java/org/allowed/bitarus/ScheduleRemote.java
./src/main/java/org/allowed/bitarus/ScheduleLocal.java
./src/main/java/org/allowed/bitarus/ScheduleWS.java
   1 package org.allowed.bitarus;
   2 
   3 import javax.ejb.Stateless;
   4 import javax.jws.WebMethod;
   5 import javax.jws.WebService;
   6 import org.allowed.bitarus.ScheduleRemote;
   7 
   8 @Stateless
   9 @WebService
  10 public class ScheduleWS implements ScheduleRemote {
  11 
  12         @WebMethod
  13         public int addSchedule(int val1, int val2) {
  14                 return val1 + val2;
  15         }
  16 }
./src/main/resources/META-INF/ejb-jar.xml
   1 <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
   2         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   3         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
   4         version="3.0">
   5         <enterprise-beans>
   6                 <session>
   7                         <ejb-name>ScheduleWS</ejb-name>
   8                         <business-local>org.allowed.bitarus.ScheduleLocal</business-local>
   9                         <business-remote>org.allowed.bitarus.ScheduleRemote</business-remote>
  10                         <ejb-class>org.allowed.bitarus.ScheduleWS</ejb-class>
  11                         <session-type>Stateless</session-type>
  12                         <transaction-type>Container</transaction-type>
  13                 </session>
  14         </enterprise-beans>
  15 </ejb-jar>
./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>ejbjee5</artifactId>
   7         <version>0.0.1</version>
   8         <packaging>ejb</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         </dependencies>
  17         <build>
  18                 <sourceDirectory>src/main/java</sourceDirectory>
  19                 <plugins>
  20                         <plugin>
  21                                 <artifactId>maven-compiler-plugin</artifactId>
  22                                 <configuration>
  23                                         <source>1.5</source>
  24                                         <target>1.5</target>
  25                                 </configuration>
  26                         </plugin>
  27                 </plugins>
  28         </build>
  29 </project>
- ./SoapUI-5.5.0
- new soap project
- initial wsdl: http://127.0.0.1:8080/ejbjee5-0.0.1/ScheduleWS?wsdl 
Example WAR for JBoss5 in docker container
 
 
- mvn clean install
- cp /app/warjee5/target/warjee5-0.0.1.war /app/jboss-5.1.0.GA/server/default/deploy
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/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 
  10 public class Handler{
  11     private ServletRequest request;
  12     private ServletResponse response;
  13     private JspWriter out;
  14     
  15     public Handler(ServletRequest request, ServletResponse response,JspWriter out){
  16         this.request = request;
  17         this.response = response;        
  18         this.out = out;
  19     }
  20 
  21     public Handler(PageContext pageContext){
  22         this.request = pageContext.getRequest();
  23         this.response = pageContext.getResponse();        
  24         this.out = (JspWriter) pageContext.getAttribute(pageContext.OUT) ;
  25     }
  26     
  27     public void writeHandler(){
  28         try{
  29           this.out.println(String.format("<p>Handler up %s</p>" , this.request.getParameter("user") ));
  30         }
  31         catch(Exception ex){            
  32         }          
  33     }
  34     
  35     public void writeIP(){
  36         try{
  37             this.out.print("!!! Your IP address is " + this.request.getRemoteAddr());
  38         }
  39         catch(Exception ex){            
  40         }          
  41     }
  42         
  43 }
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>
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     </body>
  13 </html>
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 
  15    <servlet>
  16         <servlet-name>otherindex</servlet-name>
  17         <jsp-file>/otherindex.jsp</jsp-file>
  18     </servlet>
  19     <servlet-mapping>
  20         <servlet-name>otherindex</servlet-name>
  21         <url-pattern>/otherindex**</url-pattern>
  22     </servlet-mapping>
  23 
  24 </web-app>
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         </dependencies>
  17         <build>
  18                 <sourceDirectory>src</sourceDirectory>
  19                 <plugins>
  20                         <plugin>
  21                                 <artifactId>maven-compiler-plugin</artifactId>
  22                                 <configuration>
  23                                         <source>1.5</source>
  24                                         <target>1.5</target>
  25                                 </configuration>
  26                         </plugin>
  27                 </plugins>
  28         </build>
  29 </project>
