Nov 26, 2010

how to load properties from properties files?

Setting Up the Properties Object

The following Java code performs the first two steps described in the previous section: loading the default properties and loading the remembered properties:

. . .
/* create and load default properties */
Properties defaultProps = new Properties();
FileInputStream in = new FileInputStream("defaultProperties");
defaultProps.load(in);
in.close();

// create application properties with default
Properties applicationProps = new Properties(defaultProps);

// now load properties from last invocation
in = new FileInputStream("appProperties");
applicationProps.load(in);
in.close();
. . .

First, the application sets up a default Properties object. This object contains the set of properties to use if values are not explicitly set elsewhere. Then the load method reads the default values from a file on disk named defaultProperties.

Next, the application uses a different constructor to create a second Properties object, applicationProps, whose default values are contained in defaultProps. The defaults come into play when a property is being retrieved. If the property can't be found in applicationProps, then its default list is searched.

Finally, the code loads a set of properties into applicationProps from a file named appProperties. The properties in this file are those that were saved from the application the last time it was invoked, as explained in the next section.

Source:- http://download.oracle.com/javase/tutorial/essential/environment/properties.html

Nov 23, 2010

sqlplus syntax

sqlplus sys/oracle@:/ as sysdba
eg:sqlplus sys/oracle@10.177.219.131:1521/orcl.idc.oracle.com as sysdba

Oct 19, 2010

Generate Java Code from WSDL

Overview

The wsimport tool generates JAX-WS portable artifacts, such as:

  • Service Endpoint Interface (SEI)
  • Service
  • Exception class mapped from wsdl:fault (if any)
  • Async Reponse Bean derived from response wsdl:message (if any)
  • JAXB generated value types (mapped java classes from schema types)

These artifacts can be packaged in a WAR file with the WSDL and schema documents along with the endpoint implementation to be deployed. also provides wsimport ant task, see Wsimport ant task.

Launching wsimport

  • Solaris/Linux
    • /bin/wsimport.sh -help
  • Windows
    • \bin\wsimport.bat -help

Syntax

wsimport [options] 

The following table lists the wsimport options.

Option

Description

-d   

Specify where to place generated output files

-b   

Specify external JAX-WS or JAXB binding files (Each must have its own -b)

-B 

Pass this option to JAXB schema compiler

-catalog

Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Please read the documentation of catalog and see catalog sample.

-extension  

Allow vendor extensions (functionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations

-help  

Display help

-httpproxy::  

Specify an HTTP proxy server (port defaults to 8080)

-keep  

Keep generated files

-p  
Specifying a target package via this command-line option, overrides any wsdl and schema binding customization for package name and the default package name algorithm defined in the specification
-s   

Specify where to place generated source files

-verbose  

Output messages about what the compiler is doing

-version  

Print version information

-wsdllocation  
@WebServiceClient.wsdlLocation value
-target  
Generate code as per the given JAX-WS specification version. version 2.0 will generate compliant code for JAX-WS 2.0 spec.
-quiet  
Suppress wsimport output

Multiple JAX-WS and JAXB binding files can be specified using -b option and they can be used to customize various things like package names, bean names, etc. More information on JAX-WS and JAXB binding files can be found in the customization documentation.

Example

wsimport -p stockquote http://stockquote.xyz/quote?wsdl
This will generate the Java artifacts and compile them by importing the http://stockquote.xyz/quote?wsdl.


Ant task

An Ant task for the wsimport tool is provided along with the tool. The attributes and elements supported by the Ant task are listed below:

        wsdl="..."     

destdir="directory for generated class files"
sourcedestdir="directory for generated source files"
keep="true|false"
extension="true|false"
verbose="true|false"
version="true|false"
wsdlLocation="..."
catalog="catalog file"
package="package name"



Attribute

Description

Command line

wsdl

WSDL file

WSDL

destdir

Specify where to place output generated classes

-d

sourcedestdir

Specify where to place generated source files, keep is turned on with this option

-s

keep

Keep generated files, tunred on with sourcedestdir option

-keep

verbose

Output messages about what the compiler is doing

-verbose

binding

Specify external JAX-WS or JAXB binding files

-b

extension

allow vendor extentions (funcionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations

-extension

wsdllocation
The wsdl URI passed thru this option will be used to set the value of @WebService.wsdlLocation and @WebServiceClient.wsdlLocation annotation elements on the generated SEI and Service interface
-wsdllocation
catalog
Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Additionally, ant xmlcatalog type can be used to resolve entities, see wsimport_catalog sample.
-catalog
package
Specifies the target package -p

The binding attributes is like a path-like structure and can also be set via nested elements, respectively. Before this task can be used, a element needs to be added to the project as given below:




where jaxws.classpath is a reference to a path-like structure, defined elsewhere in the build environment, and contains the list of classes required by the JAX-WS tools.

Examples

destdir="${build.classes.home}"
debug="true"
wsdl="AddNumbers.wsdl"
binding="custom.xml"/>


The above example generates client-side artifacts for AddNumbers.wsdl, stores .class files in the ${build.classes.home} directory using the custom.xml customization file. The classpath used is xyz.jar and compiles with debug information on.

keep="true"
sourcedestdir="${source.dir}"
destdir="${build.classes.home}"
wsdl="AddNumbers.wsdl">




The above example generates portable artifacts for AddNumbers.wsdl, stores .java files in the ${source.dir} directory, stores .class files in the ${build.classes.home} directory.

Source: https://jax-ws.dev.java.net/jax-ws-ea3/docs/wsimport.html


Oct 6, 2010

What are PermSize and MaxPermSize and how they work in Java?

Permanent Generation (which is “Perm” in PermSize)

The permanent generation is used to hold reflective of the VM itself such as class objects and method objects. These reflective objects are allocated directly into the permanent generation, and it is sized independently from the other generations. Generally, sizing of this generation can be ignored because the default size is adequate. However, programs that load many classes may need a larger permanent generation.

PermSize is additional separate heap space to the -Xmx value set by the user. The section of the heap reserved for the permanent generation holds all of the reflective data for the JVM. You should adjust the size accordingly if your application dynamically load and unload a lot of classes in order to optimize the performance.

By default, MaxPermSize will be 32mb for -client and 64mb for -server. However, if you do not set both PermSize and MaxPermSize, the overall heap will not increase unless it is needed. When you set both PermSize and MaxPermSize, for example, 192mb, the extra heap space will get allocated when it startup and will stay allocated.

Source : http://www.dbuggr.com/smallwei/permsize-maxpermsize-work-java/

Sep 27, 2010

Oracle DB 11g Uninstallation.

In order to uninstall Oracle Database 11g go to "deinstall" directory in $ORACLE_HOME:

echo
$ORCALE_HOME

/u01/app/oracle/product/11.2.0

cd $ORACLE_HOME/dbhome_1/deinstall

#run deinstall script (none a graphical):
sh deinstall



Source: http://www.emarcel.com/emarcel/database/114-uninstalldb11g