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

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 10 as of 2015-02-09 22:30:15
  • 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

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