Friday, June 29, 2012

How to deploy a .aar service in Axis2 server.

I am going to explain this using a simple service which has only a echoString method, which is in-out operation and a ping method, which is in-only operation.

Write your sample service.

write services.xml file for your sample service



There is a folder structure for .aar file, In this case it should be


services.xml file should be inside the META-INF directory. Otherwise you will get an error saying services.xml file is not detecte. Ok now your are ready to create Sample.aar file.

Step 1. Compile above project and Select META-INF and org(which contain SimpleService.class) directories and create sample.zip file using that directories. If you created this in correct way, when you unzip this sample.zip file you will get above both directories not a sample directory.

Step 2. Now rename this sample.zip file to sample.aar (just change the extension .zip to .aar)

Step 3. Now you can deploy this service in axis2. For that you should copy this sample.aar file to AXIS2_HOME/repository/services/

Step 4. Start Axis2 server. (How to start Axis2 server).

Step 5. Open you web browser and go to http://localhost:8080/axis2/services/ you will see your sample service withing this deployed services.

Step 6. You can use soapUI to check the above service(How to use SoapUI). (Hint- click on the SampleService in service list you will get wsdl of this service, save it )

Java Best Practice - Strings Concatenation

1. How to concatenate two Strings inside a loop

Think you need to concatenate strings to an one string, Then probably you chose one of loop in java. But there is a good practice in doing this concatenation which help to increase performance and memory utilization.


Bad  practice

code in line 4 is like

In this syntax it creates a new String object using both previous str object and reStr objects and now str variable is pointed to newly created object. Remember String object is an immutable object hence we can't modify it. Instead of this, we can use StringBuffer to concatenate Strings without creating new objects. see below good practice code segment.

Good practice

here it uses StringBuffer, In initialization it provides first string and inside for loop it append reStr String to that buffer. Therefore this avoid creating immutable string object in each loop. This will help to decrease memory utilization, and increase the performance.

Wednesday, June 27, 2012

How to use SoapUI client

You can download SoapUI from here  ,
Unzip the soapui-4.*.*-*-bin.zip to your preferable place , lets assume you unzip to your home directory ,
Then go to bin directory - run this command in terminal "cd soapui-4.*.*/bin/".
To run the SoapUI client use "sh soapui.sh " command.



Ok now you ready to create a new soapui project using your wsdl :)

Go to File--> New soapui Project



Then you can see a pop up window like below


Give a name to your project , and select you wsdl file
click ok button to create a new project.

select a operation in request window and fill out the request message. Now click on green arrow button which is at the top left conner of Request window to send your request to the service. Here I am sending echoString request giving "sample" as my string.


 If you have deploy your service at particular endpoint then you will receive response and you can see it right side pane of Request window.




Friday, June 15, 2012

How to run Apache Zookeeper server

It is easy to up and run apache zookeeper server. First you need to download latest stable version of zookeeper distribution . Lets say you have downloaded zookeeper-3.3.4 to home directory , Then open Terminal by pressing Ctrl+Alt+t all together.Go to zookeeper bin folder(run  "cd ~/zookeeper-3.3.4/bin" command in terminal)


Then run "zkServer.sh start" command then you will see following three lines
 JMX enabled by default
Using config: /home/zookeeper-3.3.4/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED


If you can see above output in the terminal window. It means you have started Zookeeper server successfully in your local machine.

To stop the server run "zkServer.sh stop" command.

If you need You can run zookeeper default client come up with the distribution, for that, run "zkCli.sh" command. Then you will see

zookeeper-3.3.4/bin/../conf:
...............
2012-06-14 23:47:35,640 - INFO  [main:Environment@97] - Client environment:java.io.tmpdir=/tmp
2012-06-14 23:47:35,641 - INFO  [main:Environment@97] - Client environment:java.compiler=<NA>
........

connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@7369ca65
Welcome to ZooKeeper!
2012-06-14 23:47:35,697 - INFO  [main-SendThread():ClientCnxn$SendThread@1061] - Opening socket connection to server localhost/127.0.0.1:2181
JLine support is enabled
2012-06-14 23:47:35,713 - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@950] - Socket connection established to localhost/127.0.0.1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2012-06-14 23:47:35,915 - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@739] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x137ec2306ef0000, negotiated timeout = 30000


WATCHER::

WatchedEvent state:SyncConnected type:None path:null 


[zk: localhost:2181(CONNECTED) 0] 

Then type "ls" or what ever you will see list of available commands


[zk: localhost:2181(CONNECTED) 0] ls 
ZooKeeper -server host:port cmd args
    connect host:port
    get path [watch]
    ls path [watch]
    set path data [version]
    delquota [-n|-b] path
    quit
    printwatches on|off
    create [-s] [-e] path data acl
    stat path [watch]
    close
    ls2 path [watch]
    history
    listquota path
    setAcl path acl
    getAcl path
    sync path
    redo cmdno
    addauth scheme auth
    delete path [version]
    setquota -n|-b val path

 [zk: localhost:2181(CONNECTED) 1]

eg: If you like to list down zookeeper root directory, Type "ls / "


Note: If you need you can change zookeeper configuration file(zoo.cfg). You can fine it zookeeper-3.3.4/conf/ directory. Sometimes you need to change its default values. As an example, If you need to connect more than 10 zookeeper client to your zookeeper server Then you should probably add maxClientCnxns=# (#-any number) otherwise defalut value is 10. if you add maxClientCnxns=0 it means there is no any client limit. please refer advanced configuration in Zookeeper administrator's guide

Sample Text

Website counter

Categories