Archive for the ‘java’ Tag
SSL and Java (ciak 2)
Last time we spoke about accessing a site via HTTPS using the pure Sun way.
Today, we see the same problem, solved with the apache HttpClient libraries. This library require a keystore specified in the code. In order to generate a keystore, you will have to download a certification file as described in the previous post and then create a keystore using the keytool program. I don’t remember well how to create a new keystore with the required certificate via keytool (I did’t write it down), but reading the help of the program it should be something like:
keytool -importcert -alias <my_alias_certificate> -file <path_to_the_cer_file> -keystore myKeystore.ks
where myKeystore.ks is the name of the file containing the keystore. The pros of using this approach is that you can provide a .ks file among with the program, in a location desired and the program will use it, avoiding post-installation procedures to register the certificate on each jvm.
So, assuming to have our keystore into a sub-directory certs the code for using the site is in the pdf as usual.
rounding double in java
Rounding a double in java is very simple. If you have to round it to the nearest integer you could use the Math.round(double) method, but what about if you have to round it with a desired number of decimals?
Quite easy too. Using the BigDecimal.setScale(int,int) method you can choose how to round it. Following a quick example:
BigDecimal bd = new BigDecimal(123.45);
bd = bd.setScale(1,BigDecimal.ROUND_HALF_UP);
System.out.println(bd.doubleValue()); //should output 123.5
Debian, eclipse and exit code 127
Just after installing eclipse from lenny repository, it crashed me up with the error JVM terminated. Exit code=127. After a bit of searching and watching at what a console execution told me, I tried execute eclipse from command line with a simple java -jar /usr/lib/eclipse/startup.jar. Well, in this way it starts up successfully without any problem. Then I tried again a startup from gnome menu and everything worked fine.
Now there is still the failing about integrated browser and the fact that eclipse shipped with lenny is the very obsolete 3.2.
execute shell command via java
It happened to me that working via an extranet on a citrix environment in a WSAD workspace, that I needed to remove the attribute to at least 200 files in different directories.
Since do it one by one via WSAD is unthinkable, and I didn’t have time to going to the client, loggin into the net in order to have a shell and I dind’t have a shell by my hands, I did it via java.
The environment is Windows machine and here is the source
package tests.runners;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class ShellCommandRunner {
public static void main(String[] args) throws IOException{
OutputStream stdin = null;
BufferedReader br = null;
String line = null;
String command = null;
command = "cmd.exe /C attrib -r /S /D X:\\workspaces\\tuc-workspace\\*.*";
System.out.println(command);
Process p = Runtime.getRuntime().exec(command);
stdin = p.getOutputStream(); //use this to push commands
//processing stdout
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((line=br.readLine())!=null) System.out.println(line);
//processing stderr
br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while((line=br.readLine())!=null) System.err.println(line);
System.out.println("done!");
}
}
JUnit4: TestSuite of TestSuite
Again talking about JUnit 4. I’m used to use TestSuite to group tests. And add them to the AllTests class. In JUnit 4 it’s quite similar to the 3.x method, just using Java Annotation instead of the old TestSuite class.
Here is the pdf with the example code for having a TestSuite of TestSuite in JUnit 4.
JUnit 4 migration
Finally even me landed in the JUnit 4 planet.
The main difficulty in migration from 3.8.* is the class AllTests : a class with all the tests in it from where you can run all application tests in one shot.
The 4.x way is to use JDK (>=5) annotation, but if you for some reason have to use the JDK 1.4 you have two solutions. The one I prefer is to use junit 3.8.x but if you cannot tolerate the missing of JUnit 4.x in the attached PDF you’ll find the standard 4.x way (with annotation) and a workaround for using the old JUnit TestSuite syntax.
Hibernate and Websphere
Here is an hibernate configuration file that works under WSAD/Websphere with an Oracle9i. Just remember to fix datasource and default_schema.
Increase java heap size
It could happen sometimes (more often when working with images) that a java program hang up with a java.lang.OutOfMemoryError. This generally happen because there’s not enough space in the heap memory for storing objects.
You can change the heap size or by the Java Control Panel or by the command line. I prefer this last one and here is the syntax
java -Xms<startHeapSize> -Xmx<maximumMeapSize> …
By default values should be -Xms32m -Xmx128m but I often solved with this values
java -Xms32m -Xmx512m …
Leave a Comment
Comments (1)

Leave a Comment