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 11 as of 2015-02-09 22:39:45
  • Java
  • JEE

JEE

Java Platform, Enterprise Edition

JEE 7 Tutorial

https://docs.oracle.com/javaee/7/tutorial/index.html

Key features: https://blogs.oracle.com/arungupta/entry/java_ee_7_key_features

Reference implementation: https://glassfish.java.net/getstarted.html

Java EE7 APIs: https://docs.oracle.com/javaee/7/tutorial/overview007.htm

Install Glassfish 4.1

https://glassfish.java.net/download.html

JDK 8 u20 or above is recommended for GlassFish 4.1.

  • cd /tmp
  • wget http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz

  • wget http://dlc.sun.com.edgesuite.net/glassfish/4.1/release/glassfish-4.1.zip

  • unzip glassfish-4.1.zip
  • tar xvzf jdk-8u25-linux-x64.tar.gz
  • mv jdk1.8.0_25/ /usr/java
  • mv glassfish4/ /opt/appsrv/
  • cd /usr/java/jdk1.8.0_25
  • chmod 555 * -R
  • /usr/java/jdk1.8.0_25/bin/java -version
  • cd /opt/appsrv/glassfish4/bin
  • JAVA_HOME=/usr/java/jdk1.8.0_25 AS_JAVA=/usr/java/jdk1.8.0_25 asadmin start-domain
  • http://localhost:4848/

  • asadmin change-admin-password
  • asadmin enable-secure-admin
  • asadmin stop-domain
  • asadmin start-domain

Docker Ubuntu image install

  • docker pull ubuntu
  • docker create --name containerx -p 1022:22 -p 1848:4848 -p 1080:8080 ubuntu
  • docker start containerx
  • docker exec -t -i containerx
  • apt-get update
  • apt-get install tzdata-java openjdk-7-jdk wget unzip
  • java
  • java -version
  • apt-get install
  • cd /tmp
  • wget http://dlc.sun.com.edgesuite.net/glassfish/4.1/release/glassfish-4.1.zip

  • unzip glassfish-4.1.zip
  • mkdir -p /opt/appsrv
  • mv glassfish4/ /opt/appsrv/
  • cd /opt/appsrv/glassfish4/
  • bin/asadmin start-domain
  • bin/asadmin change-admin-password
  • bin/asadmin enable-secure-admin
  • bin/asadmin stop-domain
  • bin/asadmin start-domain
  • exit

https://github.com/sebsto/docker-glassfish4/blob/master/Dockerfile

JEE6 EJB 3.1 sample for Glassfish 3.1.2.2 and JBoss 7.1.1

Structure:

.
|-- pom.xml
|-- src
|   `-- main
|       |-- java
|       |   `-- org
|       |       `-- allowed
|       |           `-- bitarus
|       |               |-- ScheduleRemote.java
|       |               |-- ScheduleWS.java
|       |               `-- Scheduler.java
|       `-- resources
|           `-- META-INF
|               `-- ejb-jar.xml

pom.xml

   1 <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">
   2   <modelVersion>4.0.0</modelVersion>
   3   <groupId>org.allowed.bitarus</groupId>
   4   <artifactId>ejbjee6</artifactId>
   5   <version>0.0.1</version>
   6   <packaging>ejb</packaging> 
   7   <dependencies>
   8     <dependency>
   9         <groupId>javax</groupId>
  10         <artifactId>javaee-api</artifactId>
  11         <version>6.0</version>
  12         <scope>provided</scope>
  13     </dependency>    
  14   </dependencies>
  15 </project>
  16 <!--
  17 mkdir -p src/main/java/org/allowed/bitarus
  18 touch src/main/java/org/allowed/bitarus/Scheduler.java
  19 touch src/main/java/org/allowed/bitarus/ScheduleRemote.java
  20 touch src/main/java/org/allowed/bitarus/ScheduleWS.java
  21 mkdir -p src/main/resources/META-INF
  22 touch src/main/resources/META-INF/ejb-jar.xml
  23 mvn clean compile package
  24 # Tested in GlassFish Server Open Source Edition 3.1.2.2 (build 5)
  25 -->

ejb-jar.xml

   1 <ejb-jar>
   2 </ejb-jar>

Scheduler.java

   1 package org.allowed.bitarus;
   2 import javax.ejb.Singleton;
   3 import javax.ejb.Schedule;
   4 import javax.ejb.ScheduleExpression;
   5 import javax.annotation.Resource;
   6 import javax.ejb.Timeout;
   7 import javax.ejb.TimerConfig;
   8 import javax.ejb.TimerService;
   9 import javax.ejb.Timer;
  10 import javax.annotation.PostConstruct;
  11 import javax.ejb.Startup;
  12 @Singleton
  13 @Startup
  14 public class Scheduler {
  15     @Resource
  16     private TimerService timerService;
  17 
  18     @PostConstruct
  19     private void postConstruct() {    
  20         TimerConfig config = new TimerConfig("OneMinutePassed", false);
  21         ScheduleExpression se = new ScheduleExpression();
  22         se.minute("*");
  23         se.hour("*");
  24         timerService.createCalendarTimer(se, config);
  25     }
  26 
  27     public String addSchedule(String second,String minute,String hour,String info){
  28         TimerConfig config = new TimerConfig(info, false);
  29         ScheduleExpression se = new ScheduleExpression();
  30         se.second(second);
  31         se.minute(minute);
  32         se.hour(hour);
  33         timerService.createCalendarTimer(se, config);        
  34         return "Added " + info;
  35     }    
  36     
  37     @Schedule(minute="*/5", hour="*")
  38     private void eachFiveMinutes(){
  39         System.out.println("Called each five minute");
  40     }    
  41 
  42     @Timeout
  43     public void timeout(Timer timer) {
  44         if ("OneMinutePassed".equals(timer.getInfo())) {    
  45             System.out.println("OneMinutePassed !!!");
  46             /*for(Timer t : timerService.getTimers() ){
  47                 System.out.println(">>> "+ t.getInfo() );
  48             }*/
  49         }else{
  50             System.out.println("!!! "+ timer.getInfo() );
  51         }        
  52     }    
  53 }

ScheduleRemote.java

   1 package org.allowed.bitarus;
   2 import javax.ejb.Remote;
   3 
   4 @Remote
   5 public interface ScheduleRemote{
   6     String addSchedule(String second,String minute,String hour,String info);
   7 }

ScheduleWS.java

   1 package org.allowed.bitarus;
   2 import javax.ejb.Stateless;
   3 import javax.jws.WebMethod;
   4 import javax.jws.WebService;
   5 import javax.ejb.ScheduleExpression;
   6 import javax.annotation.Resource;
   7 import javax.ejb.TimerService;
   8 import javax.ejb.TimerConfig;
   9 import javax.ejb.EJB;
  10 @Stateless
  11 @WebService
  12 public class ScheduleWS implements ScheduleRemote{
  13     @Resource
  14     private TimerService timerService;    
  15     @EJB
  16     Scheduler sc;
  17     
  18     @WebMethod
  19     public String addSchedule(String second,String minute,String hour,String info){
  20         return sc.addSchedule(second, minute, hour, info);
  21     }
  22 }
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01