Never been to CodeSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

java :: create unique ID

// create unique ID

import java.util.UUID;

public class createID
{

   /**
    * create unique ID
    */
   public static void main(String[] args)
   {
    //generate random UUIDs
      UUID idOne = UUID.randomUUID();
      log("UUID One: " + idOne);
   }
   
   public static void log(Object aObject)
   {
      System.out.println( String.valueOf(aObject) );
   }
}

Ubuntu and writing Java servlets

Kind of a strange, and I'm sure this wouldn't have happened on any other distribution of Linux, but I spent forever looking through blogs, message boards, and all manner of other places looking for an answer to this question.

The problem was with this little itty bitty smidge of code:
/**
 * hello.java
 */
import javax.servlet.*;

class HelloWorld
{
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
        }
}


Everytime I wanted to compile this, I got something like "Could not find javax.servlet. blah blah" So, eventually, I just pulled an apt-cache search j2 (for j2ee) and saw an entry for libservlet2.4-java. Hmmmmm, what the heck is that I wondered. I installed it and went to the Ubuntu site to look at what files were installed and sure enough:

/usr/share/java/jsp-api-2.0.jar
/usr/share/java/jsp-api.jar
/usr/share/java/servlet-api-2.4.jar
/usr/share/java/servlet-api.jar


Perfect! I added these paths to my CLASSPATH variable in my .bashrc and whamo, I'm in business and flaunting my little HelloWorld.class file all around town.

I hope this helps someone else!

Change package names of java files

changes the package names of java classes.

For example, if you have a bunch of java files in a package and you need to move them to a new package.

#!/bin/sh
                          
for file in `ls *.java` 
do
  sed -e "s/old.package.name/new.package.name/" $file > /tmp/tempfile.tmp
  mv /tmp/tempfile.tmp $file
done

Export french characters

// description of your code here

java -Dfile.encoding=CP850 YourClassName
export JAVA_OPTS=-Dfile.encoding=UTF-8

Java Program + DWM/WMII/Awesome/... = Grey Rectangle

To get past the problem of java programs showing up as grey squares on your screen when you are using a non-standard window manager, simply prefix the program name or "java -jar ..." with "AWT_TOOLKIT=MToolkit"

AWT_TOOLKIT=MToolkit webscarab

Tomcat connector for lighttpd:

To connect Tomcat to lighttpd use the following code:



server.modules  += ( "mod_proxy_backend_ajp13" )
$HTTP["url"] =~ "^/tomcat/" {
  proxy-core.balancer = "round-robin"
  proxy-core.protocol = "ajp13"
  proxy-core.backends = ( "localhost:8009" )
  proxy-core.max-pool-size = 16
}

Make your JSP an XHTML

By default, a JSP file won't be considered as an XHTML stream by the web browser. This will make things such as XForms not being rendered since the browser XForms plugins/addons render Xforms only for XHTML pages. To make a JSP file as XHTML, put this at the beginning of the JSP file

<?xml version="1.0" encoding="utf-8"?>
<% response.setContentType("application/xhtml+xml"); %>


Note that the XML declaration has to be in the first line for a valid XHTML. Of course, after doing this, you need to make all your tags valid XML in your JSP as well.

How to use JSTL fmt:message and resource bundle

To use JSTL fmt:message tags with a message bundle, there are two ways.

First, if there is only one properties file, use, the following code in web.xml file.

  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>class.path.to.your.resources.bundle</param-value>
  </context-param>


Use <fmt:message key="your.message.key"/> in the JSP.

Second, if there are multiple properties files, and there are different locales, use
<fmt:setBundle basename="class.path.to.your.resources.bundle"/>

before <fmt:message key="your.message.key"/>

Or you can write

<fmt:bundle basename="class.path.to.your.resource.bundle">
  <fmt:message key="your.message.key"/>
</fmt:bundle>

Ver los componentes de una clase

Para ver los componentes de una clase

Class.getDeclaredFields(class)
Class.getDeclaredConstructors(class)
Class.getDeclaredMethods(class)

Find Out what columns are in your result set

// assumes your RecordSet is named rs

		ResultSetMetaData md = rs.getMetaData();
		Logger.debug("Col count is " + md.getColumnCount());
		for(int i=1; i < (md.getColumnCount() +1) ; i++) {
			Logger.debug("Column name is " + i +" "+ md.getColumnName(i));
		}