Archive by Author

Oracle NLS settings (0)

May 28th, 2010 by Frank Niedermann, under Oracle.

DATABASE
-> settings from init.ora at creation of database
-> select * from nls_instance_parameters;

INSTANCE
-> settings from init.ora or spfile when instance was started
-> overwrites DATABASE settings
-> select * from nls_session_parameters;

SESSION
-> settings changed through alter session
-> overwrites INSTANCE settings
-> select * from nls_session_parameters;

Character Set:
select value from nls_database_parameters where parameter = ‘NLS_CHARACTERSET’;

Tagged with , , .

1. Java Class TheTime.java

import java.awt.*;
import javax.swing.*;

public class TheTime {
  public static void main(String args[]) {
    JFrame frame =  new JFrame("Time Check");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JLabel label = new JLabel();
    Container content = frame.getContentPane();
    content.add(label, BorderLayout.CENTER);
    String message = "missing";
    message = "foo";
    label.setText(message);
    frame.pack();
    frame.show();
  }

javac TheTime.java
java TheTime

2. Create a JAR

jar cf JNLPTime.jar TheTime.class
3. Sign the JAR
keytool -genkey -keystore myKeys -alias jdc
jarsigner -keystore myKeys JNLPTime.jar jdc

4. Create JNLP file:

< ?xml version="1.0" encoding="UTF-8"?>
< jnlp spec="1.0+" codebase="file:///var/www/JavaWebStart/jnlp/" >
< information>
  < title>Time Check
  < vendor>nf
  < homepage href="http://www.google.de" />
  < description>desc
< /information>
< offline-allowed/>
< security>
  < j2ee-application-client-permissions/>
< /security>
< resources>
  < j2se version="1.5+" />
  < jar href="JNLPTime.jar"/>
< /resources>
< application-desc main-class="TheTime" />
< /jnlp>

5. Create HTML link

 < a href=time.jnlp>Launch the application< /a>

Tagged with , .

1. Create Connection Factory and Destination Resource in GlassFish admin console:

Resources / JMS Resources / Connection Factory -> New
JNDI-Name: jms/myFactory
Resource-Type: javax.jms.ConnectionFactory
Additional Properties: Remove username and password

Resources / JMS Resources / Destination Resources -> New
JNDI-Name: jms/myQueue
Physical Destination Name: myQueue
Resource Type: javax.jms.Queue

2. Create a new web application in NetBeans, edit index.jsp:

        < title>Send Message to JMS-Queue< /title>
        < form action="sendMessage">
            < table  cellspacing="20" >
                < tbody>
                    < tr>
                        < td>Message:< /td>
                        < td>< input type="text" name="message" value="" width="30" />< /td>
                    < /tr>
                < /tbody>
            < /table>
                < input type="submit" value="Send The message" name="send" />
        < /form>

3. Create new Servlet sendMessage in web application:

package dummy;
import java.io.*;
import javax.jms.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class sendMessage extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try{
            Context ctx = new InitialContext();
            ConnectionFactory connectionFactory = (ConnectionFactory)ctx.lookup("jms/myFactory");
            Queue queue = (Queue)ctx.lookup("jms/myQueue");
            javax.jms.Connection connection = connectionFactory.createConnection();
            javax.jms.Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
            MessageProducer messageProducer = session.createProducer(queue);
            TextMessage message = session.createTextMessage();
            message.setText(request.getParameter("message"));
            messageProducer.send(message);
            out.println("");
            out.println("");
            out.println("");
            out.println("");
            out.println("");
            out.println("
"); out.print("Message " + request.getParameter("message") + " sent to Queue " + queue.getQueueName() +"."); out.println("
"); out.println(""); out.println(""); } catch(Exception ex){ ex.printStackTrace(); } out.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } }

Tagged with , , .

1. viPlugin
Name: viPlugin
Site: viplugin.com

2. GlassFish
Plugin Site: http://ajax.dev.java.net/eclipse
GlassFish download: https://glassfish.dev.java.net/downloads/v3-final.html
Servers / New Server / GlassFish v3
Preferences / GlassFish -> start Derby with GlassFish

3. Derby
http://db.apache.org/derby/derby_downloads.html (core & ui) into eclipse/plugins
Data Source Explorer / Database Connections -> New -> Derby
New Driver Definition / Derby Client JDBC Driver

Tagged with , , , .

try {
  BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt", true));  // true defines append to file instead of overwrite
  writer.write("text into file" + "\n");
  writer.close();
} catch (Exception e) {
  System.out.println(e.getMessage());
}

Tagged with , , , , .

Date and Time in Java (0)

January 12th, 2010 by Frank Niedermann, under Java.


import java.util.*;
import java.text.*;

// actual date and time
Date d = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = f.format(d));

// other time zone
df.setTimeZone(TimeZone.getTimeZone("America/New_York");
String nowNY = f.format(d));

Tagged with , , , .

XML: SAX or DOM? (0)

September 22nd, 2009 by Frank Niedermann, under Java.

There are some differences between the SAX and DOM XML parser. The main difference in one sentence are:

1. SAX reads the XML document once and can react on events but it won’t save the XML structure in memory.

2. DOM reads the XML document and stores it in a tree which allows manipulation or to extract information from the XML document more than once.

SAX is easy and fast, DOM builds a tree and allows manipulation.

Tagged with , , , .

This is how the type of a file can be determined using the extension of the file:

1
2
3
4
5
6
7
8
9
10
public class FileType {
	public static void main(String[] args) {
		String fileName = "foo.pdf";
		String extension = fileName.substring(fileName.lastIndexOf("."));
		System.out.println("Extension: " + extension);
		if (fileName.equalsIgnoreCase(".pdf")) {
			System.out.println("It is a PDF-File.");
		}
	}
}

Tagged with , , , .

1. Generating a key pair (public key + private key) for the server and store those as certificate in the keystore “ServerKeystore”

keytool -genkey -keystore ServerKeystore -alias SSLCertificate -keyalg RSA -validity 360

2. Export the public key of the server and import it into the keystore “ClientKeystore”

keytool -keystore ServerKeystore -export -alias ServerKeystore -file ServerCertificate.crt
keytool -keystore ClientKeystore -import -file ServerCertificate.cer

3. List the contents of the two keystores

keytool -list -keystore ServerKeystore -v
keytool -list -keystore ClientKeystore -v

4. Generate the Java class for the SSLServer

import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
 
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;
 
public class SSLServer implements Runnable {
 
	public static void main(String[] args) {
		ExecutorService executor = Executors.newSingleThreadExecutor();
		executor.execute(new SSLServer());
		System.out.println("Server started on port 7777");
		executor.shutdown();
	}
 
	@Override
	public void run() {
		try {
			// create a server socket and listen on it
			SSLServerSocket serverSocket = (SSLServerSocket) SSLServerSocketFactory
					.getDefault().createServerSocket(7777);
			SSLSocket server = (SSLSocket) serverSocket.accept();
 
			// input and output stream
			InputStream in = server.getInputStream();
			OutputStream out = server.getOutputStream();
 
			// receive data from client and echo it back
			Scanner scanner = new Scanner(in);
			PrintWriter printWriter = new PrintWriter(out);
			String line = null;
			while (scanner.hasNextLine()) {
				line = scanner.nextLine();
				System.out.println("Server received: " + line);
				printWriter.println(line);
				printWriter.flush();
			}
			scanner.close();
			server.close();
			serverSocket.close();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}

5. Generate the Java class for the SSLClient

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
 
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
 
public class SSLClient {
 
	public static void main(String[] args) {
 
		try {
			// create a client socket and connect to server
			SSLSocket client = (SSLSocket) SSLSocketFactory.getDefault()
					.createSocket("localhost", 7777);
 
			// output stream to server
			OutputStream out = client.getOutputStream();
 
			// input stream for user input
			InputStream in = System.in;
			InputStreamReader reader = new InputStreamReader(in);
			BufferedReader breader = new BufferedReader(reader);
 
			// send data to server
			PrintWriter printWriter = new PrintWriter(out);
			String line = null;
			while ((line = breader.readLine()) != null) {
				printWriter.println(line);
				printWriter.flush();
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}

6. Run the SSLServer and SSLClient classes with the following JRE parameters

SSLServer: -Djavax.net.debug=all -Djavax.net.ssl.keyStore="/path/to/ServerKeystore"  -Djavax.net.ssl.keyStorePassword=serverKeystorePassword
SSLClient: -Djavax.net.debug=all -Djavax.net.ssl.trustStore="/path/to/ClientKeystore" -Djavax.net.ssl.trustStorePassword=clientKeystorePassword

Using -Djavax.net.debug=all as additional JRE parameter will print some debug information.

Tagged with , , , , , .

1. Install the required package:

sudo apt-get install cryptsetup

2. Create a partition on the USB-stick:

sudo cfdisk /dev/sdX

3. Encrypt the partition:

sudo luksformat -t ext2 /dev/sdX
Creating encrypted device on /dev/sdX...
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:

Entering the USB-stick into Ubuntu will bring up the following window:
unlockencryptedusbstick

To edit the label of the USB-stick (by default it’s just ‘disk’) use e2label for ext filesystems and mtools for fat filesystems. Details: https://help.ubuntu.com/community/RenameUSBDrive

Tagged with , , , .