| Size: 13742 Comment:  | Size: 13777 Comment:  | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 2: | Line 2: | 
| * 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) | * 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 8: | Line 9: | 
| {{attachment:jeeTiers.png}} | 
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
 
  
 
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 -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>
