I know there is no Sun courses any longer. There are Oracle Java courses. I have been to some. GlassFish ESB 2.1 for Implementers (SAS-4300) and Developing Applications for the Java EE 6 Platform (FJ-310-EE6). But also I have student workbook for Sun GlassFish Enterprise Server Administration and Developement SAS 4455 what looks interesting. Instaling and configuring is just obvious. But setting clusters, nodes, configuring load balancer and session replication sound really interesting. I am software developer but setting just right the environment for all the stuff is also important. I would hire administrator just for maintaining the system no for starting the whole world up :)

Posted

There is interesting free java development environment called Google App Engine. My sample app hansguestbook deployed there. It can me easly integrated with your favorite IDE (I hope) I use netbeans and it works fine. I hope I be able to code some sample apps and run there. There is some limitations but always you can register another google account and put there your over limit apps. I will try to put there GWT simple app to check if GWT works fine with GoogleAppEngine (It should). Any difference I’ve noticed (comparing to ordinary AS) there is JDO in data tier. I hope this works exactly like JPA. Will test it. Instaling your SDK you get GoogleAppEninge server instance and while you are developing you deploy your stuff too localhost, having “baked” you send it to GoogleAppE.

Posted

Previously I’ve just mentioned that I am working on JbossCache deployed to glassfish. I want to have it distributed. My frustration was I couldn’t find any configuration file online of replication mode. It turned out that example configuration was inside JBoss Cache zip file, Core Edition version 3.2.5 “Malagueta” (download full zip jbosscache-core-3.2.5.GA-all.zip) in file jbosscache-core-3.2.5.GA\etc\config-samples\total-replication.xml.

  • remember to put your configuration-cache.xml in WEB-INF/classes
  • I’ve changed they way of communication from sync to async. (should be faster)
  • upload 7 jar to your AS and restart: commons-logging.jar, jbosscache-core.jar, jboss-common-core.jar, jboss-logging-spi.jar, jboss-transaction-api.jar, jcip-annotations.jar, jgroups.jar

After loading 7jars to domain/libs and restarting Glassfish I was able to deploy web application with one class: JbossCacheActivatorServletContextListener

public class JbossCacheActivatorServletContextListener implements ServletContextListener {

    private Cache cache = null;

    public void contextInitialized(ServletContextEvent sce) {
        try {
            CacheFactory factory = new DefaultCacheFactory();
            cache = factory.createCache("cache-configuration.xml");
            InitialContext ctx = new InitialContext();
            ctx.bind("JBossCacheRef", cache);
        } catch (NamingException ex) {
            Logger.getLogger(JbossCacheActivatorServletContextListener.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void contextDestroyed(ServletContextEvent sce) {
        try {
            InitialContext ctx = new InitialContext();
            ctx.unbind("JBossCacheRef");
            cache.stop();
        } catch (NamingException ex) {
            Logger.getLogger(JbossCacheActivatorServletContextListener.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

after all if there is cache instance. You can login to jconsole localhost:8686 and look for (ObjectName jboss.cache) it under MBeans node.

Testing.

  1. I run cache on two separate Glassfish AS. They are in the same network (same mask; I am sure it works either in opposite condition but it will need more configuration).
  2. I’ve coded two ejb’s as with @WebService annotation, one i puting into cache and second is reading from it.
  3. I’ve turned off one node and put something into second one cache. I check for content… is ok. Then I start first node and check… and content is being replicated from the second what makes it work perfect.

Attention.

In jboss cache user guide guys from jboss cache suggest to register it into JMX (5.4.2.┬áRegistering the CacheJmxWrapper with the MBeanServer). As you can see I put referance to cache into InitialContext. That is why becasue I could not get into jbosscache trought the jmx mbeans cuz Glassfished sets a different ObjectName for this object, so I’ve got problems with finding it.

Posted

Uncle Bob prepared an article + step by step tutorial about TDD it is called Bowling Game Kata and is really showing off what is TDD about. It is about writing your code starting with tests. And as everybody knows tests included into the code are highly required cuz they are simply usage examples of ‘how to use’ this code. I recommend this article The Bowling Game Kata (there is ppt to download)

Posted

As some of you could notice I am openESB developer and fan. It’s development tool (Netbeans) is tightly bounded with Glassfish. Of course you can bound Jboss or any other AS to it. But I am accustomed to Glassfish (and previous Sun Application Server since JCAPS) so I work with it and all people from my division too. Read more »

Posted