Matt RaibleMatt Raible is a Web Developer and Java Champion. 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.

Cannot load JDBC driver class 'null'

I'm going to post my newly-found solution to an often-seen error in hopes that it will help someone. In the struts-resume demo application that runs on this server, I've been getting the following error message everytime I startup the context.

java.sql.SQLException: Cannot load JDBC driver class 'null'
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)

In the past, this problem has been caused by not having the JDBC driver in my $CATALINA_HOME/common/lib directory, having an invalid username/password, or having another JNDI setting incorrect in server.xml. The strange thing about the problem this time was that everything was correct, and the app ran fine, save for the error (in the log file) on startup. Tonight I figured out the solution - I needed to grant permissions for the user with the specific hostname of the machine. I've been using the following SQL to grant permissions to the app's db user. This is the syntax for MySQL, it is probably different for other databases.

grant all privileges on resume.* to username@"%" identified by "password";

While this has worked on my WinXP machine, it failed on my RH9 box tonight. The solution turned out to be specifying the specific HOSTNAME (i.e. drevil.raibledesign.home), rather than "%".

grant all privileges on resume.* to username@HOSTNAME identified by "password";

Here Google, come and get it!

Posted in Java at May 06 2003, 10:52:24 PM MDT Add a Comment

JSPs compiled by Jikes

I configured Tomcat to compile JSPs using Jikes, and everything seems to work just fine. So good in fact, that I don't know that the change has taken effect. Anyone know how to verify that jikes is truly compiling my JSPs?

Posted in Java at May 06 2003, 10:31:02 PM MDT 1 Comment

I'm willing to bet...

... that this site crashes more than any other website I know of. It sucks. It was down most of the day due to a max of 20 database connections per MySQL user. When the automated process of restarting Tomcat for OutOfMemory errors took place, the database connections where not released for some reason. Damn. It was down a lot on Sunday and Monday because there was MySQL connection problems. NOTE: All of these issues are NOT related to Roller. Keith is going to try to setup a new box for me tonight to test on, and possibly move this site to. If that doesn't resolve these issues, I'm outta here and onto a new provider.

Posted in Java at May 06 2003, 05:01:13 PM MDT 1 Comment