Coming Up for Air



  • Changing the GlassFish Admin Users's Password Programmatically

    Recently, in the #glassfish channel on Freenode, a user was having trouble configuring GlassFish in a Docker environment. He was scripting the configuration of the server, but was having trouble setting the admin user’s password, since the change-admin-password command takes input from stdin. Fortunately, there’s REST API for that. This curl command will do what the user needs to do without any need for additional input:

    curl  -X POST \
        -H 'X-Requested-By: YeaGlassFish' \
        -H "Accept: application/json" \
        -d id=admin \
        -d AS_ADMIN_PASWORD=password \
        -d AS_ADMIN_NEWPASSWORD=password2 \

    Once the password is set, this same command can be used to change the password, but --user admin:$PASSWORD must be added to authenticate the request.

    I should note that I don’t think this is an officially supported way to execute asadmin commands. It works, but it may change, or it may go away. I would say that Oracle may not support doing this either, but they don’t offer any support, so there’s no harm there. :) Also note that AS_ADMIN_PASWORD has a typo in it that may be fixed in future releases of the server. Caveat emptor! :)



  • Gradle + Arquillian + GlassFish Embedded

    I’ve recently been migrating all of my personal projects to Gradle. Since I use Arquillian, that means migrating that part of the build as well. However, being still fairly new to Gradle, how to handle that integration wasn’t immediately obvious. Thanks to Benjamin Muschko and Aslak Knutsen, I’ve finally gotten a working setup.



  • Using Server Sent Events and the GlassFish REST Interface

    Wikipedia defines Server-Sent Events as "a technology for providing push notifications from a server to a browser client in the form of DOM events. The Server-Sent Events EventSource API is now being standardized as part of HTML5 by the W3C." It’s a great alternative to polling the server for updates. Long story short, thanks to the work of the Jersey team, we have "easy" access to this in GlassFish, and we’ve added support for it to our RESTful administration interface. Let’s take a look at a quick sample.


  • GlassFish 3.1.2, REST Security, and the Jersey Client

    I recently blogged about a change we made in GlassFish 3.1.2 with regard to REST security. Specifically, we added some CSRF protection (you can read the details here). For those of you using the Jersey Client, updating your code to support this change is very simple:

    import com.sun.jersey.api.client.filter.CsrfProtectionFilter;
    // ...
    Client client = new Client();
    client.addFilter(new CsrfProtectionFilter());
    // ...

    On the client side, that’s all you have to change. Jersey will take care of the details.

    Hat tip to Dan Allen for suggesting this post. :)

  • GlassFish 3.1.2 and REST Security

    As you may know by now, we released GlassFish 3.1.2 yesterday. Tim Quinn has a nice overview of some of the security-related changes, but one change he didn’t cover was one in the RESTful administration area, namely CSRF protection. I won’t go into the details of what CSRF attack is here, but I do want to show we’ve added protections to GlassFish to make sure the server is as secure as possible.

    For the curious, we implemented the CSRF protection using a filter provided by the Jersey team. As you can see from the javadoc, this change only affects requests that change state (POST, PUT, DELETE, etc). To update your client code, all you need to do is add the X-Requested-By header. Its value doesn’t matter:

    curl -X POST -H 'X-Requested-By: YeaGlassFish' -d key=value \

    That’s all there is to it. It’s a very simple change, but an important one. If you run into any issues with this, please let us know!



  • GlassFish REST Client -

    In a series of recent posts, I’ve shown off what the GlassFish 4.0 REST client wrappers should look like, giving simple examples of using the wrappers using both Java and Python, the two currently supported languages. In this post, we’ll take a look at a more complex example, that of setting up clusters and standalone instances, deploying an app, then cleaning up after ourselves. Let’s jump right in.

  • GlassFish REST Client Goes to the Flying Circus

    It happened a bit more quickly than I had planned, and, yes, I know that’s a pretty bad Python joke, but, as promised, I just committed code to add support for generating Python REST clients to the GlassFish RESTful Administration interface. Let’s take a quick look at it.

  • GlassFish REST Interface, a Client-side Perspective

    As I’ve covered here before, GlassFish sports (and has for a while now), a pretty comprehensive set of management and monitoring REST endpoints. While this goes a long way toward opening up GlassFish management to various scripting solutions, the client side is still pretty manual. One my goals in GlassFish 4.0 is to fix that. In this article, I’m going to give you a sneak peak into what we on the REST team have planned for the GlassFish RESTful administration interface.


  • Managing GlassFish JDBC Resources via REST

    I was asked this morning about creating JDBC resources via REST. As with user management, it’s actually pretty simple, once you’ve seen how. Let’s take a look.

  • Adding Users to a GlassFish Realm via REST

    A user on the GlassFish forums recently asked how to create users in bulk. The asadmin command create-file-user doesn’t support passing the password as a parameter, which makes scripting difficult. The REST interface, though, can help there, and it’s really pretty simple.

  • Debugging GlassFish REST Requests

    If you’ve been following my series on using the GlassFish REST interface, you’ve probably noticed that your JSON and XML output isn’t pretty-printed like mine. While there are several online tools that can fix that for you, there’s no need for the extra step. GlassFish will do that for you. Let’s look at how to make that happen.


  • RESTful GlassFish Monitoring

    In previous posts, I’ve shown various ways to manage a GlassFish 3.1 server via its REST interface. As nice as that is, we also support monitoring your server via REST as well. In this article, we’ll take a look at some of the things you can ask of your server.

  • GlassFish 3.1 Is Now Available

    image::[style="float: right; padding: 0px 0px 10px 10px;"] For those that may not have noticed, today the GlassFish team officially released version 3.1. This new release brings in a myriad of features, the most significant of which is probably clustering and high availability. The Aquarium is the best place to find links to blogs, screencasts etc. from various GlassFish engineers (though Markus Eisele has a nice run down of the new features here as well). The Aquarium’s list is pretty extensive, so certainly check it out, but I’d like to highlight a few that I found interesting from teammates of mine:

    People often ask what the difference is between the free GlassFish and the commercially-supported version. The answer really is "not much" in terms of the core server itself (pretty much just branding changes). The commercial version, though, has some nice value-add features, such as the Performance Tuner, amongst others.

    I’m really, really pleased with how GlassFish 3.1 has turned out. We still (and will always) have more work to do, but this is a solid release that finally fills in some enterprise holes that v3 didn’t have time to fill. Download it, install it, kick the tires a bit, and tell us what you what you think. In the meantime, we’re going to go ahead and get started on 3.2.

  • Java EE's Buried Treasure: the Application Client Container

    From time to time, I’m asked about accessing various EE artifacts (EJBs, etc) from a standalone client. Almost invariably, the user is having trouble getting the environment setup, grabbing an InitialContext, etc. Also almost invariably, my answer to them is "use the application client container", which is as far as I can take them. The topic of application client container, or ACC, came up again recently when I was asked on Twitter about an issue with ACC and GlassFish in a clustered environment. While this user (hi, Markus! : ) figured out his issue before I could be of much help, I took this opportunity finally to learn exactly what the ACC is and how to use it. Thanks to Oracle’s Tim Quinn for his patient and tireless help, here’s what I learned…​

  • GlassFish 3.1, REST, and Secure Admin

    After posting my last entry, GlassFish 3.1, REST, and a Secured Admin User, I was asked about an entry on using GlassFish 3.1’s REST interface with secure admin enabled. Some of you may be asking, "Isn’t that what you just wrote about?" While the titles sound the same, they’re slightly different, but in a very significant way. Let’s take a quick look at secure admin and then see what our REST client needs to do make use of this new server configuration.

  • GlassFish 3.1, REST, and a Secured Admin User

    In my last post on using the GlassFish REST interface, a commenter asked about how GlassFish handles security. So far, all of my examples have been using GlassFish 3.1 out of the box, which doesn’t require authentication (as a convenience for developers, as well as system admins evaluating the server). In production, of course, the server will be secured, which means our client code will have to be modified. In this installment, we’ll see how that might be done in Java.

  • Deploying Applications to GlassFish Using curl

    Over the past few months, I’ve been posting tips on how to use the REST interface in GlassFish v3 and later to perform various functions. My last post used Scala. In this much briefer and far less ambitious post, I thought I’d share how to deploy an app using curl (from the shell of your choice). If you’re familiar with the REST endpoint, there’s really not just a whole lot new here:


  • Running Long-Running Reports with JMS

    At a recent meeting of the Oklahoma City JUG, I was asked by a member how her group could "script" JSF report generation. After a couple of questions, I figured what she really wanted: she wanted a way to allow users to request reports in an ad hoc manner, as opposed to the reports being run on a schedule. In a general sense, this is a pretty easy question to answer, but I’ve run into situations where the reports take a long time to run — and I’m sure she will, as well — making a web interface for generating the report less useful (due to timeouts, etc). In this entry, we’ll take a look at one way to handle that.



  • GlassFish Administration: The REST of the Story Part II - Deploying Apps Using Scala

    In a previous post (far too long ago :), I began showing off the RESTful administration API in GlassFish v3. In GlassFish Administration: The REST of the Story Part I, I showed the basics of the API, what to send, what you get back, etc. In this post, I want to show a practical use of the API, namely, deploying an application, and this time, for no particular reason other than I’m trying to learn the language, we’ll do it in Scala.

  • The Value of the Stack

    This morning on twitter, I saw an announcement that Mollom has a new backend, one based on GlassFish. I have to be honest. I don’t know much of anything about Mollom beyond this, nor do I know anything about their previous backend other than it was Java-based. The blog post, though, immediately made me think of dynamic languages.

    These days, it’s hot to be dynamic, whether it’s Ruby, Python, Groovy, or something else. There’s no denying that they have some very compelling features. One of the quotes in the blog post, though, really stood out to me:

    With our move to GlassFish, we’ll have to worry a lot less about memory management, REST handling, XML parsing, database connection pooling, and all the other ancillary things that make big systems work. That frees us up to focus on the domain-specific problems — the actual moving parts of Mollom itself — and will help both support our growth and allow us to implement new features and improve the old ones.

    As I’ve noted, their former architecture was Java-based, but the same idea applies to the typical deployment of projects based on dynamic languages. While readily admitting I’ve done precious little with dynalang projects in the enterprise, from what I’ve read and have heard people discuss, it seems the most common deployment scenario is, for example, Apache httpd with mod_foo installed. There might even be a cluster of these httpd instances (or some other web server that a language or framework suggests) behind a load balancer or two, and that seems to work for a lot of people. While effective, though, it seems that such a configuration leaves a lot of grunt infrastructure work up to the development or production support team.

    Enter the Java EE stack. As the Mollom engineer noted, using an application server like GlassFish gives the developer and support teams quite a bit of infrastructure for free. In addition to what he listed, a full EE stack can also give you clustering/high-availability, monitoring, server management, etc. (Note: GlassFish v2 support all of these. GlassFish v3 does not support clustering, but GlassFish 3.1, which is just about ready to ship, will). Many of the "ancillary things that make big systems work" are provided for you. It’s not free, of course. The system demands are typically higher, and those "ancillary things" have to be configured, tuned and monitored, but they don’t have to be developed, which makes the systems that run on them a fair bit simpler.

    It is possible, of course, to get the best of both worlds. Some dynamic languages, like Groovy, already run on the JVM, while projects like JRuby and Jython allow running those languages in a Java EE container, all while still reaping the benefits that dynamic languages offer. For shops that using those languages, or would like to, this is a very compelling option.

    Dynamic languages do offer a lot that we Java developers would love to use, but users of those dynamic languages would be well-served to take a good look at the Java EE stack and see if perhaps Java can add value to their deployment.


  • GlassFish Administration: The REST of the Story Part I

    Of the many great things about GlassFish, one that is often mentioned most (and is, in fact, what got me involved with GlassFish as an end user years ago) is the Administration Console. It’s an extremely powerful and capable interface, and is, if I may be so bold, orders of magnitudes better than its open source competition (it may even beat commercial competitors, but I have no experience with those). Another powerful tool in GlassFish administration is the asadmin CLI utility, which allows for quick and easy scripting of server provisioning, etc. Did you know, though, that GlassFish has a third administration interface? As of GlassFish v3, we offer a RESTful administration API, based on Jersey, to allow non-Java clients to configure the app server easily. For GlassFish 3.1, one of my main responsibilities, with the help, I should add of my coworkers Ludovic Champenois and Mitesh Meswani, has been to help improve upon the great start we had in in v3. In this entry, we’ll take a look at the current state of the interface and learn the basics of using.


  • GlassFish Roadmap

    There has been a lot of speculation and concern about the fate of GlassFish after the Oracle acquisition. Yesterday, though, we were able to unveil the official roadmap for GlassFish, and I think it looks very promising. In short, not much is going to change with regard to the open source side of things, though there are some changes on the commercially supported offering, which is not unexpected. Some of the highlights include:

    • GlassFish 3.0.1 - 2010

      • Branding and patches</li>

      • Multi-lingual release</li>

      • Value-added features for Oracle GlassFish Server</li>

      • Base interop w/Oracle Middleware products</li>

    • GlassFish 3.1 - 2010

      • Centralized administration of cluster</li>

      • HA/state replication</li>

      • Value-added features like Coherence Support</li>

    • GlassFish 3.2 - 2011

      • Improved cluster/HA admin</li>

      • Better integration with Oracle Identity Management</li>

      • Virtualization support</li>

      • Some Java EE 6 spec updates plus some Java EE 7 EA specs</li>

    • GlassFish 4

      • Common server platform - shared best-of-breed with WebLogic Server</li>

      • Java EE 7</li>

    For a more complete picture, see the slide deck here.

  • Writing Selenium Tests for the GlassFish Admin Console

    One of the results of the Oracle purchase of Sun has been an increased focus on testing — not that we didn’t test GlassFish before, but it was mostly manual in my area of the server. The task of automating this fell to me, and, after a little — ahem — testing, I settled on Selenium.

  • Run GlassFish V3 As a Non-Root Service on Gentoo Linux

    Byron Nevins, a colleague of mine here at Oracle, has a couple of nice blog entries showing how to run GlassFish as a service, both as root and non-root users, on Ubuntu or Debian. As a Gentoo user, that doesn’t help me much, unfortunately, but, some time ago, I developed a script that works great for me, so I thought I’d share it here.



  • GlassFish v3 Virtual Conference

    This is a little late notice, but we at Sun are holding a "virtual conference" covering GlassFish v3, Java EE 6, etc. You can find details here. It starts in 30 minutes (10:00 CST, 8:00 PST). :)

  • GlassFish v3 Is Now Available

    Today, the GlassFish team is pleased to announce the release of GlassFish v3. This release marks the first production-ready release of a Java EE 6 compliant application server. It also marks the culmination of a tremendous engineering effort to transform the very capable but monolithic GlassFish v2 into a small, sleek and scalable modular system, built on OSGi. You can get all the details over at The Aquarium.

    Of all the features in this release, the two I’m the proudest of are the console, on which I work during the day, and JSF 2, on which I work when I can. The console, while it looks similar to that in v2 (somewhat by design), has undergone a pretty serious makeover. We’ve removed the frameset, which solved a number of issues on both the client and the server, we introduced the use of the YUI LayoutManager to help with the page layout, and we implemented Ajax-based navigation (which was one of my major tasks, along with Ken Paulsen). The result is, I think, a lighter, faster console. It posed some interesting challenges, but I think we were able to work everything out to make a very nice and snappy console. We’re not resting on our laurels, though. Like the rest of the server, our team has some grand plans for upcoming releases in the console.

    On the backend, we had to do a fair amount of rework to accomadate all the changes made to support the modularity introduced for v3. For example, as we demonstrated at a Hands-on-Lab at JavaOne, the console is pluggable, which allows developers, OEMs, admins, etc to create and install plugins that add functionality to the console. In fact, that’s how we delivered all of the non-core functionality in the console. If you’re running the web profile, you won’t see anything JMS-related, for instance.

    The other feature I’m pretty proud of is JSF 2. As an Expert Group member and sadly not-too-active-committer (at the moment) on Mojarra, the JSF implementation we ship with GlassFish, I’m really, really pleased with how JSF 2 turned out. In what spare time I can find, I’ve been doing some application development as well as component development using the new spec, and it’s been a joy to work with. From annotations to composite components and more, JSF 2 is just really easy to work with (I hope to blog more on that in the near future).

    In addition to those, v3 offers CDI (via Weld), JPA 2, EJB 3.1, Servlet 3.0, and on and on. There should be something for everyone, so do yourself a favor and check it out. I don’t think you’ll be disappointed.


  • GlassFish v3 FishCAT Announced
    glassfish color small

    During the GlassFish v3 Prelude development cycle, the GlassFish team launched an initiative called FishCAT, which is our Community Acceptance Testing program. The program was very successful for Prelude, resulting in many, many reported (and fixed! : ) issues for the Prelude release. As we press hard toward the release of GlassFish v3 final later this fall, this program has been re-launched to help us engage our user community. Through this program, testers will have a much greater impact on the final quality of the product when it finally ships. If you’d like more information, you can see the announcement here, and a description of the program here. If you’d like to sign up and help, the application can be found[here].


  • Webinar: From Ajax Push to JSF 2.0: ICEfaces on GlassFish

    The GlassFish webinar series is, I think, a pretty valuable resource for regular readers of my blog, as it covers a lot of topics that I cover here. Today’s webinar, "From Ajax Push to JSF 2.0: ICEfaces on GlassFish," is particularly relevant, as it’s a JSF-related session. Here’s the abstract:

    Ted will provide details on how to build and deploy rich web applications with Ajax and Ajax Push (aka Comet) and catch a glimpse of the future with an overview of JavaServer Faces 2.0.

    This presentation illustrates the fundamentals of Ajax Push, covering application design, development, and deployment, drawing on ICEfaces sample applications and implementation. Topics will include network protocols, application-level push APIs, GlassFish Grizzly integration, and the ramifications of the two-connection limit.

    Looking forward to JSF 2.0, we will cover Ajax integration, new scopes and annotations, and custom components.

    I had the opportunity to see Ted present Ajax Push (their term for Reverse Ajax or Comet, if you prefer those monikers) at last year’s JSFOne conference. The ICEfaces demos are very, very slick, and the level of simplicity they managed to achieve is absolutely amazing. If you have any interest in Ajax Push/Reverse Ajax/Comet, you should certainly attend this session. If you are currently using JSF, this is a really good example of the power of component-based frameworks like JSF.


  • Opinions Wanted: v3 GUI Prototype

    As I mentioned in a recent post, we’re investigating some changes to the GlassFish v3 Administration Console. We finally have something fairly concrete to show, and have set up a demo site for you to play with. Ken Pauslen sent an email regarding our demo to the GlassFish users' list, so instead of repeating all of that, I’ll simply quote his email for you below. Note the comment on performance toward the end. :)

    Please send feedback to the Opinions Wanted: v3 GUI Prototype[webtier list] or the Opinions Wanted: v3 GUI Prototype[dev list]. Many thanks! :)

  • What's Happening In the World of Mojarra Scales?

    I’ve been a bit silent of late on what’s happening with Mojarra Scales, so I thought I’d take a moment to bring everyone up to speed.

  • Leveraging Identity with GlassFish and MySQL

    Late last year and early this year, I spent a great deal of time to author/edit a white paper detailing the deployment of Sun Identity Manager using GlassFish and MySQL. The paper, with additional input from Ed Ort, Suveen Nadipalli and John Clingan, gives a brief introduction to what identity management is and why you’d want it, then covers the whats, hows, and whys of MySQL and GlassFish installation, the installation and configuration of Sun Identity Manager, tuning the system, and ends with a quick look at the total cost of ownership. I think we put together a very nice paper on a very interesting and oft-overlooked piece of enterprise data management. If you’re interested in reading more, you can click here for the download page.


  • Webinar Covering GlassFish’s ASadmin Tool

    Today at 1:00PM CST, the GlassFish team will host a webinar discussing the asadmin utility that ships with GlassFish. Here’s the official annoucment by Eduardo Pelegri-Llopart (webified be me :

    This week’s webinar set presents ASadmin, the GlassFish administration CLI. The GlassFish GUI console is well designed and very well appreciated by the users but GUIs are not best for automation and power users tend to use CLIs for that reason. The ASadmin console has been called the "hidden gem" in GlassFish; hopefully this webinar will make it a bit less hidden.

    The presenter is the asadmin lead, Jane Young. We are likely to also have a panel on the value of asadmin with two non-Sun heavy users of asadmin: Dan Allen and Dick Davies.

    This is a free, online, presentation. The presentation will be recorded and made available later for replays.

    Presentation Date/Time: Jan 22nd, 11amPT - Other TZs Online at Ustream. Concall for Speakers (others, please mute with *6) Toll Free: (866) 545-5227 Int’l Access: (215) 446-3648 (caller paid) Access Code: 3535518 Additional details: here



  • Changes Are Coming to the GlassFish Admin Console

    GlassFish isn’t just an application server. It’s a community. For that reason, we on the admin console team want to take some time to run some ideas by the user community. For the GlassFish v3 final release due in the middle of next year, we plan to redesign the admin console. Since the admin console is usually high on the list of differentiators, we are approaching these changes very cautiously, as we don’t want to ruin a good thing. Our goals are to make the console lighter and faster, and use a more modern design. Our plan, then has several parts, which we’ll look at individually.


  • Seam, WebBeans and GlassFish

    For some time now, Sun has made use of Ustream.TV to broadcast webinars covering various topics of interest to GlassFish users.  That effort continues on November 20th at 11am PST as Eduardo Pelegri-Llopart hosts Dan Allen, author of Seam in Action to discuss Seam, WebBeans, and GlassFish.  Some of WebBeans' companion specs (EJB 3.1 and JSF 2) will also be covered by spec leads Ken Saks and Roger Kitain, respectively.  For more information, see this page on Sun’s wiki. To catch previous broadcasts on The Aquarium’s Ustream.TV channel, you can go directly there.

  • Making Your GlassFish v3 Prelude Administration Console Plugin Pluggable

    In my last article, I talked about writing plugins for the GlassFish v3 Prelude Administration Console, which showed the various integration types supported out-of-the box by the console, but what if a plugin developer would like to allow <i>other</i> plugins to extend it just like the console itself does. In this short article, we’ll show how to do exactly that.

  • GlassFish Day Online

    One more note (for now :) on GlassFish v3 Prelude.  Sun is holding an online event called GlassFish Day, which is a day of short presentations (about 10 minutes each).  There will be several presentations throughout the day.  To see the schedule and decide which ones are of interest to you, please see this entry from The Aquarium.

  • Extending the GlassFish v3 Prelude Administration Console

    Today, the GlassFish community is launching GlassFish v3 Prelude (Release Notes and Quick Start Guide). If you are not familiar with what Prelude is, here is a short write up giving the high level details. In this article, I’d like to focus on the third bullet there, "CLI and administration console extensibility." Specifically, we’ll look at what it takes to create a plugin that will extend GlassFish v3’s Administration Console.

  • Not So Late Breaking News

    I’ve been meaning to say something about this for while, now, but I have been a bit busy, and was finally beaten to the punch by Alexis Moussine-Pouchkine over at The Aquarium. Before I go any further, go read Alexis' article, paying particular attention to the "real #1 winner" link. Go ahead. I’ll wait…​


  • Quercus on GlassFish via the Update Center

    Jim Driscoll wrote a really helpful blog entry regarding the GlassFish Update Center module he wrote for Mojarra. After reading that, I decided to revisit Quercus on GlassFish. Using Jim’s incredibly detailed entry, as well as looking at the code in the Mojarra 2.0 SVN repo, I was able to get an Update Center module working that installs and configures Quercus for you, so now all you have to do to get WordPress running, for example, is install this module, and extract WordPress into your document. Easy!

    For those interested, the Update Center url is To set this up, you’ll need to start the Update Center ($GF_HOME/updatecenter/bin/updatetool.*), switch to the Preferences tab, click Add, and fill out the form. Once that’s done, switch to the "Available Software" tab, click the "Check for Updates" button in the upper right corner, and wait for the process to finish. You should now see Quercus available under the "Web Technologies" section.

    For those interested, the source code is in my Mercurial repository here.

    Due to some issues in GlassFish v2, automatic uninstallation is a bit complicated. The module supports it, but you have to get your hands dirty to make it work. Jim has details on his blog.

    If you use this, please let me know how it works out for you. :)

  • GlassFish, PHP and WordPress

    With all the hype around JRuby, Jython, Scala, Groovy, etc., an oft-overlooked dynamic language with JVM support is PHP. Thanks to the hard work of the folks at Caucho Technology, the Quercus project offers a pure Java implementation of the PHP language, sporting support for a lot of the major PHP-based applications. In this entry, we’ll look at how to configure GlassFish to provide easy PHP support, and then look at installing WordPress, the popular blogging software (which runs this site) on GlassFish.



  • Thank you, Sun

    I’m a bit hesitant to post this as I’m afraid that it may come across as self-congratulatory, which is not my intent at all, but I think Sun deserves an "atta-boy."


  • Comparing the GlassFish and OC4J Admin Consoles

    As I’ve noted previously, a recent job change has required that I become familiar with Oracle’s application server, Oracle Containers for Java, or OC4J. I recently set aside time to set up my OC4J environment to test a prototype I have been working on and have running under GlassFish. After getting the server installed and logging on to the administration console, I was struck by how nice it was. I’ve long held that one of the many strengths GlassFish has over its open source competition is a vastly superior administration console. Presented now with a commercial application server with the might of a company like Oracle behind it, how well does GlassFish stand up1? In this entry, I’d like to take a look at that question. Since a Java EE container is a complicated piece of software, an exhaustive comparison of any two such containers is an overwhelming task. In the interest of brevity, we’ll take a look at just a couple of areas2, and wrap things up with some general observations.


  • Virtual Hosting using Apache and GlassFish

    While many have found GlassFish to be a great choice for an internal application server, there are others that would like to push it a bit further, and use it in an ASP/ISP envrionment. Jan Luehe discussed GlassFish’s virtual hosting features in a recent blog entry. What I’d like to do in this entry is take the information that Jan presented, and walk through setting up a few different virtual hosting environments.



    Sample quote

    Quote source


    My name is Jason Lee. I am a software developer living in the middle of Oklahoma. I’ve been a professional developer since 1997, using a variety of languages, including Java, Javascript, PHP, Python, Delphi, and even a bit of C#. I currently work for Red Hat on the WildFly/EAP team, where, among other things, I maintain integrations for some MicroProfile specs, OpenTelemetry, Micrometer, Jakarta Faces, and Bean Validation. (Full resume here. LinkedIn profile)

    I am the president of the Oklahoma City JUG, and an occasional speaker at the JUG and a variety of technical conferences.

    On the personal side, I’m active in my church, and enjoy bass guitar, running, fishing, and a variety of martial arts. I’m also married to a beautiful woman, and have two boys, who, thankfully, look like their mother.

    My Links