Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.
You searched this site for "free sex movies for men non blog". 1,227 entries found.

You can also try this same search on Google.

Upgrading from Tyrex 0.9.7 to Commons DBCP.

I'm trying to upgrade from Tyrex 0.9.7 (ships with Tomcat 4.0.4 for connection pooling) to the Commons DBCP (ships with Tomcat 4.1.x for connection pooling). I've set it up according to these instructions. However, my connections don't seem to be getting closed, or it's closing the connection pool and I get a "connection is closed" error.

If I use this method to close connections, I get "connection is closed:"

    /** Closes a connection from the connection pool */
    public void closeConnection(Connection con) throws ServiceLocatorException
    {
        try {
            con.close();
        } catch (SQLException sqle) {
            logger.error("SQLException: " + sqle.getMessage());
            throw new ServiceLocatorException(sqle);
        } finally {
            if (con != null) {
                // try again
                try {
                    con.close();
                } catch (SQLException csqle) {
                    // ignore
                }
            }
        }
    }

I changed my closeConnection method (see below). It seems to work better (no closed connection error), but I am wondering about the open connections to mysql. When I monitor them (show status; watch Threads_connected), there are 3 at first (I'm guessing from my monitor connection, JDBCRealm and Connection pool). It gets up to 5, any tips on how I can tell if connection pooling is working?

    /** Closes a connection from the connection pool */
    public void closeConnection(Connection con) throws ServiceLocatorException
    {
        try {
            con.close();
        } catch (SQLException sqle) {
            logger.error("SQLException: " + sqle.getMessage());
            throw new ServiceLocatorException(sqle);
        } finally {
            // try again
            try {
                if (!con.isClosed()) {
                	con.close();
                }
            } catch (SQLException csqle) {
                // ignore
            }
        }
    }

I think the problem is that it's not creating a "pooled" connection. When you are using a connection pool, con.close() should just return it, not actually close it - right?

In my getPooledConnection method, I'm getting "Non-Pooled Connection" each time.

    /** 
     * Retrieves a connection from the connection pool
     */
    public Connection getPooledConnection() throws ServiceLocatorException
    {
        try {
            ds = (DataSource) getEnvContext().lookup(Constants.JNDI_DB);
        } catch (NamingException ex) {
            logger.error("NamingException: " + ex.getMessage());
            throw new ServiceLocatorException(ex);
        }
        
        try {
            if (ds instanceof ConnectionPoolDataSource) {
                ConnectionPoolDataSource poolDataSrc = (ConnectionPoolDataSource) ds;
                PooledConnection pc = poolDataSrc.getPooledConnection();
                con = pc.getConnection();
                if (logger.isDebugEnabled()) {
                    logger.debug("Pooled Connection");
                }
            } else {
                if (logger.isDebugEnabled()) {
                    logger.debug("Non-Pooled Connection");
                }
                con = ds.getConnection();
            }
        } catch (SQLException ex) {
            logger.error("SQLException: " + ex.getMessage());
            throw new ServiceLocatorException(ex);
        }
        return con;
    }

If you have a WAG/suggestion, please enlighten me!

Posted in Java at Aug 24 2002, 04:12:15 AM MDT Add a Comment

Reason to QA your site.

This guy seems to work for Microsoft, and you can tell, have you looked at his blog in Mozilla? It gets a little ugly, not unreadable, but enough to make you wonder.

My opinion on browsers is: IE rocks on both OS X and Windows XP for one reason, and one reason only - it opens faster. That's it, the only reason I have. I really like Chimera (for OS X) and Mozilla, but they just take too long to open. I'm impatient. Even on Linux, Konquerer tends to open faster, so I use it more than Mozilla.

Posted in General at Aug 22 2002, 06:23:37 AM MDT Add a Comment

My Perspective on Blogging

I found this via Blogging Roller: are you addicted to blogging? I would be if I had better things to say, and I knew people were listening. One reason I recently did this site as a blog, rather than the old site, is because I *liked* reading people's blogs on the web. So now this is a blog, will it get me any new clients? I don't know - probably moreso than the last site.

As one friend asked me, "Who is your target audience?" I told him it was folks like me - developers who are interested in reading about what other developers have to say. The one problem is that if I ever get a client that stumbles upon this site, they might not know what the heck my company does. But, I would have to say that this new site explains what I do a lot better than my old site.

The absolute best part about blogging is when someone else notices that you have something interesting to say, and puts a link on their site. It's like getting an article written about you in the local paper.
what a great feeling looks like

Posted in General at Aug 21 2002, 02:46:52 AM MDT Add a Comment

Struts Console version 2.1

is now available.

http://www.jamesholmes.com/struts/

Struts Console is FREE software. This release adds support for the IntelliJ IDEA IDE, one of the favorites of many developers.

Changes with Struts Console v2.1

  • Fixed bug where the "initial" attribute of the <form-property> element was getting set to blank when it wasn't specified.
  • Added plugin support for IntelliJ IDEA.

I don't use the Struts Console, but it does look like a nice product. I DO like IDEA, so it's nice to see the compatibility. I have installed it with Forte4J (now Sun ONE Studio 4) and it seemed to install and work pretty well. On my current project, I don't modify the struts-config.xml enough to really use a visual editor. I usually just use Homesite or XML Spy - of course, it helps that I know the struts-config DTD.

Posted in Java at Aug 20 2002, 01:12:34 AM MDT Add a Comment

Java Winamp-like music player via Web Start.

I stumbled upon this cool little app today by way of rebelutionary.

<quote>
Checkout JLGui - it's a Web Start enabled, Winamp skin compatible music player that supports MP3, Ogg, WAV and a bunch of other formats. In native Java. Now that is cool.
</quote>

Launch me via Web Start

I agree!

Posted in General at Aug 15 2002, 01:55:50 AM MDT Add a Comment

Music to code by.

If you enjoy listening to music while coding all day, I recommend downloading Rhapsody. It allows you to listen to pre-programmed "radio stations" for free - helps me cope with the fact that I can't listen to Mark and Brian via KGON and the internet anymore.

Posted in General at Aug 14 2002, 04:50:53 AM MDT Add a Comment

Roller installed successfully!

I finally got this application installed at my ISP (kgbinternet.com). As an FYI, here are the issues I experienced while installing.

  1. I had to copy WEB-INF/lib/jaxrpc.jar to $CATALINA_HOME/common/lib.
  2. I was getting the following error on Linux/Tomcat 4.0.3:

    2002-07-31 13:28:12 ROLLER> PersistenceException getting database connection
    [org.exolab.castor.jdo.DatabaseNotFoundException: The JNDI
    name java:comp/env/jdbc/rollerdb does not map to a JDBC DataSource]
    
    ... and since I was able to reproduce this on WinXP/Tomcat 4.0.3, I upgraded to 4.0.4 at my ISP. BTW, they let ME do this - very cool ;-)
  3. Then I was getting the following error:

    TyrexDataSourceFactory:  Cannot create DataSource, Exception
    java.lang.ClassNotFoundException: org.hsql.jdbcDriver
    
    ... so I sent a message to the Keith at kgbinternet - a couple of hours ago - and I don't know if he did anything, but I'm posting on the working app as we speak!

Posted in Roller at Aug 01 2002, 03:56:20 AM MDT 1 Comment