Wednesday, April 29, 2015

Eclipse Main Class Not Found: Troubleshooting Classpath Issues

This is the common issue with Eclipse , even I faced many times . This is not related to Eclipse or any other IDE tool.


This issue occurs when you are trying to run your main() method with respective class, its looking for the exact .class file in the class path.During the execution the .class file is not available in the class path. The best way to resolve this is, add the .class file into class path.

There are many possible diagnosis you can do in your Eclipse for this issue. As per the Eclipse behavior when you are updating the class path (Build Path) , your class is getting compiled that time and the .class file got created. So, Be careful when doing the build path for your project.

Also check your Build Path, if any jar file is missing. Because, its might causes sometime.

In my case I just found the jar file missing in the build path , and I removed the missing jar and added new jar file from other location.Then executed my class with main method and it works. Below screenshot shows my issue.


Tuesday, April 7, 2015

How to Convert String to Date in Java Using Joda-Time

How to convert String to Date in java using Joda Time ?

The below program converts the String-to-Date and Date-to-String using joda time library. Joda Time library is a 3rd party jar and its very easy and compact to use for such conversion. Download the joda jar from https://github.com/JodaOrg/joda-time/releases

Example :-

package jdevelopersguide.lab;

import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;

public class ConvertToDate {

/**
* @param args
*/
public static void main(String[] args) {
String date="2015-04-07";
DateTime jodaTimeDate=DateTimeFormat.forPattern("yyyy-mm-dd").parseDateTime(date);
System.out.println("Joda Time Date is::"+jodaTimeDate);

//Convert Joda DateTime to Java Date
Date javaDate=jodaTimeDate.toDate();
System.out.println("Converted Java Date is:::"+javaDate);

//Convert Java Date to String
String convertedDate=DateTimeFormat.forPattern("dd-mm-yyyy").print(javaDate.getTime());
System.out.println("Converted Java Date to String::::"+convertedDate);
}

}


Output :-


Joda Time Date is::2015-01-07T00:04:00.000+11:00
Converted Java Date is:::Wed Jan 07 00:04:00 EST 2015
Converted Java Date to String::::07-04-2015



The  Pattern is really very simple and you can use as per your requirements. There are many pattens are there as follows :-

The pattern syntax is mostly compatible with java.text.SimpleDateFormat - time zone names cannot be parsed and a few more symbols are supported. All ASCII letters are reserved as pattern letters, which are defined as follows:
 Symbol  Meaning                      Presentation  Examples
 ------  -------                      ------------  -------
 G       era                          text          AD
 C       century of era (>=0)         number        20
 Y       year of era (>=0)            year          1996

 x       weekyear                     year          1996
 w       week of weekyear             number        27
 e       day of week                  number        2
 E       day of week                  text          Tuesday; Tue

 y       year                         year          1996
 D       day of year                  number        189
 M       month of year                month         July; Jul; 07
 d       day of month                 number        10

 a       halfday of day               text          PM
 K       hour of halfday (0~11)       number        0
 h       clockhour of halfday (1~12)  number        12

 H       hour of day (0~23)           number        0
 k       clockhour of day (1~24)      number        24
 m       minute of hour               number        30
 s       second of minute             number        55
 S       fraction of second           number        978

 z       time zone                    text          Pacific Standard Time; PST
 Z       time zone offset/id          zone          -0800; -08:00; America/Los_Angeles

 '       escape for text              delimiter
 ''      single quote                 literal       '
 

You can find more details in joda site

Monday, April 6, 2015

How to Create a Client JAR from WSDL

There are many ways you can create the client.jar for your WSDL file . Using the below process you can create the client jar. But its not recommended to use for live project. For live project you need to create a project with maven structure and I will post that later. This can be used for testing purpose.

Open your linux/unix terminal and follow the steps below.


Step 1- Get the published WSDL.Use wsimport command to get the WSDL file. 

dev@optus-developer-desktop ~/temp/test $ wsimport -keep http://localhost:9001/myapps/TestApp?wsdl

dev@optus-developer-desktop ~/temp/test $ ls -ltr
total 16
drwxr-xr-x 3 dev dev 4096 Apr  5 10:52 au
drwxr-xr-x 3 dev dev 4096 Apr  5 10:52 webservice
drwxr-xr-x 4 dev dev 4096 Apr  5 10:52 org
drwxr-xr-x 3 dev dev 4096 Apr  5 10:52 types


Step 2- Create Jar file using jar command as below.


dev@javadevelopersguide-developer-desktop ~/temp/test $ jar -cvf client.jar .

.....
.....
.....
.....adding: org/javadevelopersguide/apps/com/resource/physicalresourcespec/ObjectFactory.class(in = 1568) (out= 627)(deflated 60%)
adding: org/javadevelopersguide/apps/com/resource/physicalresourcespec/PhysicalResourceSpec.class(in = 1205) (out= 500)(deflated 58%)
adding: org/javadevelopersguide/apps/com/resource/physicalresourcespec/package-info.class(in = 426) (out= 294)(deflated 30%)
adding: org/javadevelopersguide/apps/com/service/(in = 0) (out= 0)(stored 0%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/(in = 0) (out= 0)(stored 0%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/ServiceSpecCharacteristicValue.class(in = 1705) (out= 717)(deflated 57%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/package-info.java(in = 289) (out= 199)(deflated 31%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/ServiceSpecCharacteristicValue.java(in = 5228) (out= 855)(deflated 83%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/ObjectFactory.java(in = 2190) (out= 705)(deflated 67%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/ObjectFactory.class(in = 1711) (out= 639)(deflated 62%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristicvalue/package-info.class(in = 444) (out= 303)(deflated 31%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/(in = 0) (out= 0)(stored 0%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/ServiceSpecCharacteristic.java(in = 8623) (out= 1656)(deflated 80%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/package-info.java(in = 279) (out= 193)(deflated 30%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/ServiceSpecCharacteristic.class(in = 2805) (out= 1068)(deflated 61%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/ObjectFactory.java(in = 2095) (out= 695)(deflated 66%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/ObjectFactory.class(in = 1636) (out= 630)(deflated 61%)
adding: org/javadevelopersguide/apps/com/service/servicespeccharacteristic/package-info.class(in = 434) (out= 297)(deflated 31%)
...........
...........
...........
...........


dev@javadevelopersguide-developer-desktop ~/temp/test $ ls -ltr
total 1356
drwxr-xr-x 3 dev dev 4096 Apr 5 10:52 au
drwxr-xr-x 3 dev dev 4096 Apr 5 10:52 webservice
drwxr-xr-x 4 dev dev 4096 Apr 5 10:52 org
drwxr-xr-x 3 dev dev 4096 Apr 5 10:52 types
-rw-r--r-- 1 dev dev 1369704 Apr 5 10:56 client.jar


Now the client.jar is got generated, you can use this jar file and call the real published service.




Hope it will help you.