Posts

JAXB - II (jaxb.index file and ObjectFactory)

I was getting a Exception like, javax.xml.bind.JAXBException: "doesnt contain ObjectFactory.class or jaxb.index" while trying to create a JAXBContext using JAXBContext.newInstance(String contextPath). It took me a while to figure out what went wrong. So now that I've got things working correctly, I thought I'd post this example and solution to hopefully save you some time. When we create a marshaller, we first need to create a JAXBContext via its newInstance() factory method. You can create a context for a specific JAXB class  or you can create a context for a list of packages. There are two ways to resolve this issue :    - By creating ObjectFactory   - By adding jaxb.index file jaxb.index : The jaxb.index file is a text file contains a listing of the classes on the containing package that have JAXB annotations. Note : The name of the clases is their simple name not their classified name.   Rather than creating a ObjectFactory, I guess adding ...

Java Architecture for XML Binding (JAXB)

Overview:  - Java Architecture for XML Binding (JAXB) is a Java standard that defines how Java objects are converted to/from XML (specified using a standard set of mappings).  - It defines a programmer API for reading and writing Java objects to / from XML documents and a service provider which / from from XML documents allows the selection of the JAXB implementation  - It makes reading  and writing of XML via Java very easy.  - It allows Java developers to access and process XML data without having to know XML or XML processing  - It is used heavily by JAX-WS    - It provides ways to generate XML content from a Java representation , to generate a Java representation from XML file , to generate XML schema from Java Objects  - The JAXBContext class provides the client's entry point to the JAXB API. It provides an abstraction for managing the XML/Java binding information necessary to implement the JAXB binding framework operati...

OSGi for Beginners

Image
Open Services Gateway initiative framework (OSGi) 1. What is OSGi ?   OSGi is a specification. The core of the OSGi specification defines a component and service model for Java. The components and services can be dynamically activated, de-activated, updated and de-installed. A very practical advantage of OSGi is that every bundle must define its exported Java packages and its required dependencies. This way you can effectively control the provided API and the dependencies of your plug-ins. OSGi bundles : The OSGi specification defines the OSGi bundle as the unit of modularization. A bundle is a cohesive, self-contained unit, which explicitly defines its dependencies to other modules and services. It also explicitly defines its external API. Technically OSGi bundles are .jar files with additional meta information. This meta  information is stored in the "META-INF" folder in the "MANIFEST.MF" file. bundle = identity & dependency info + jar The "MANIFE...

Java Reflection: Annotations

What are Java Annotations? Annotations is a new feature from Java 5. Annotations are a kind of comment or meta data you can insert in your Java code. These annotations can then be processed at compile time by pre-compiler tools, or at runtime via Java Reflection. The annotation can be attached to Classes, Methods,Parameters,Fields etc. How to create custom Annotation? To create an annotation we use the interface keyword and add an @ symbol infront of it. The @ symbol will tell the compiler that it doing some business with an annotation. @Retention (RetentionPolicy.RUNTIME) public @interface MyAnnotation { String value(); } The @ in front of the interface marks it as an annotation. Once you have defined the annotation you can use it in your code.Here is an example of class annotation: @MyAnnotation(value="Class Annotation") public class MyClass { } The two directives in the annotation definition, @Retention(RetentionPolicy.RUNTIME) and @Target(El...

How to install libflashplayer.so on linux

When we trying to install the flash player for your linux operating system, we download file libflashplayer.so but we do know where to put this file. This article guild you step by step to install the flash player for linux. Step 1: Go to Adobe website and download you suitable version of flash player libflashplayer.so 32-bit/64bit . Then extract it to libflashplayer.so File. Step 2: cd to the folder has file libflashplayer.so and install If you are using FireFox: sudo mv libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so   If you are using Google Chrome + Firefox sudo mv libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so sudo mkdir /opt/google/chrome/plugins sudo cp /usr/lib/flashplugin-installer/libflashplayer.so  /opt/google/chrome/plugins Thanks.

Basic Linux Commands

*) How to extract tr.gz. file To extract one or more members from an archive :               tar -zxvf {file.tar.gz} For example, If your tar name is backup.tar.gz, enter the following at a shell prompt:               tar -zxvf backup.tar.gz *) How to run .bin file Change the permission of the file you downloaded to be executable. Type the following command:               $ chmod +x file.bin Start the installation process or run .bin file.Type the following command:               ./file.bin For example if .bin file name is application.bin. Type:         $ chmod +x application.bin         $ ./application.bin *) How to set a BASH variable equal to the output from a command? Use $(), which I find easier to read, and allows for nesting.         OUTPUT=$(ls -1) echo $OUTPUT *) How to read IP ...

How to Set JAVA_HOME / PATH variables Under Linux

Image
After installing Java Development Kit on Linux/Unix, you may still need to do some configuration to get Java ready for running or compiling Java programs. The following instruction will guide you through the process of setting up JDK for software development. In Linux, ~/.bash_profile is a startup script which generally runs once. This particular file is used for commands which run when the normal user logs in. Common uses for .bash_profile are to set environment variables such as PATH, JAVA_HOME, to create aliases for shell commands, and to set the default permissions for newly created files. Set JAVA_HOME / PATH for single user Login to your account and open .bash_profile file $ cd $HOME $ vi ~/.bash_profile Set PATH and JAVA_HOME as follows:   PATH=$PATH:$HOME/bin:/usr/jdk1.6.0_30/bin JAVA_HOME=/usr/jdk1.6.0_30 Note: Don't delete the previous PATH, Just append the jdk path after : like "/usr/jdk1.6.0_30/bin" as above . export PATH export JAVA_...