Java Central

This blog contains the info about Java and J2ee and Ajax and Hibernate

Tuesday, December 6, 2011

New Certification on Java7 from oracle

Below are the Java 7 Certified Programmer topics. Currently the exam is in Beta Mode. After 3 months it will be available as Final mode.

Language Enhancements

[ ] Use String in the switch statement
[ ] Use binary literals, numeric literals with underscores
[ ] Use try-with-resources
[ ] Use multi-catch in exception statements
[ ] Use the diamond operator with generic declarations
[ ] Use more precise rethrow in exceptions

Design Patterns

[ ] Design a class using the Singleton design pattern
[ ] Identify when and how to use composition to solve business problems
[ ] Write code to implement the DOA Pattern
[ ] Design a class that uses the Factory design pattern
[ ] Database Applications with JDBC

Describe the JDBC API

[ ] Identify the Java statements required to connect to a database using JDBC
[ ] Use the JDBC 4.1 RowSetProvider, RowSetFactory, and new RowSet interfaces
[ ] Use JDBC transactions
[ ] Use the proper JDBC API to submit queries and read results from the database.
[ ] Use JDBC PreparedStatement and CallableStatement

Concurrency

[ ] Identify potential threading problems
[ ] Use java.util.concurrent collections
[ ] Use atomic variables and locks
[ ] Use Executors and ThreadPools
[ ] Use the parallel Fork/Join framework

Localization

[ ] Describe the advantages of localizing an application
[ ] Define what a locale represents
[ ] Read and set the locale by using the Locale object
[ ] Build a resource bundle for each locale
[ ] Call a resource bundle from an application
[ ] Select a resource bundle based on locale
[ ] Format text for localization by using NumberFormat and DateFormat

Java File I/O (NIO.2)

[ ] Use the Path class to operate on file and directory paths
[ ] Use the Files class to check, delete, copy, or move a file or directory
[ ] Read and change file and directory attributes
[ ] Recursively access a directory tree
[ ] Find a file by using the PathMatcher class
[ ] Watch a directory for changes by using WatchService

Java 7 Features

Some of Java 7 Features:
1) Diamond Operator
2) Using strings in switch statements
3) Automatic resource management
4) Numeric literals with underscores
5) Improved exception handling
6) New file system API (NIO 2.0)
7) File change notifications
8) Fork and Join
9) Supporting dynamism

Thursday, October 29, 2009

jax-ws webservices in jboss or tomcat

Now JAX-RPC has been replaced by new standard JAX-WS, so I thought it is good time to write an entry for JAX-WS as well. Building web services with JAX-WS is pretty straight forward though it might look cumbersome to a newbie. In this entry I am going explain the basic steps for building a Java first web service, which I developed and tested with JAX-WS 2.1.4, Java 6 update 6 and Tomcat 6.0.16.
Step #1 - Write an interface


@WebService(targetNamespace = "http://vinodsingh.com", name = "MyService")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL)
public interface MyService {

String sayHello(@WebParam(name = "name") String name);
}
Step #2 - Implement the interface

@WebService(endpointInterface = "pkg.MyService")
public class MyServiceImpl implements MyService {

@Override
public String sayHello(String name) {
return "Hello " + name + "!";
}
}
Step #3 - Configure web.xml

The JAX-WS context listener and servlet are required to be configured in deployment descriptor (web.xml). The WSServletContextListener initializes and configures the web service endpoint and WSServlet serves the service requests using implementing class.
----------------------------
<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>jaxws
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet
</servlet>
<servlet-mapping>
<servlet-name>jaxws
<url-pattern>/myService
</servlet-mapping>
-----------------------------
Step #4 - sun-jaxws.xml

The JAX-WS RI uses information available in this file while initializing and configuring a web service endpoint. This file should be present in WEB-INF directory.

<endpoints
xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime'
version='2.0'>
<endpoint
name='myService'
implementation='pkg.MyServiceImpl'
url-pattern='/myService' />
</endpoints>



For more information about this example, please go to below link which is the main link where i got the data.

http://blog.vinodsingh.com/2008/09/building-jax-ws-web-service.html

For jax-rpc example please use the below link

http://blog.vinodsingh.com/2007/08/bottom-up-jax-rpc-web-service-with.html

Friday, August 21, 2009

javac:invalid flag error-solution

Hi

i faced this problem and suffered 2 days for this. Intially i thought this problem with my java webservices(i got this while i'm doing webservices). But its not.

its the problem with our jdk.few jdk versions supports the wildcard intries in 'javac', few are not.

Here is the full article about this.

http://javahowto.blogspot.com/2006/07/jdk-6-supports-in-classpath-but-be.html

Wednesday, July 15, 2009

java.lang.NoClassDefFoundError: org/objectweb/asm/Type+Solution

add asm.jar file

java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter-Solution

3 solutions found.
Answer 1:
You need cglib.jar


Answer 2:
Download the jbpm-jpdl-3.2.2.zip file from URL http://labs.jboss.com/jbossjbpm/

you will find this cglib.jar in the folder path after you unzip the above downloaded file:
jbpm-jpdl-3.2.2\server\server\jbpm\lib


Answer 3:
If you have this error while using Hibernate, refer to this tuto :
http://java.developpez.com/faq/hibernate/?page=Generalites
It says to include the following libs in addition to the one delivered with Hibernate :
* Jakarta Commons Logging
* Jakarta Commons Collections
* Log4j
* dom4j
* Jta
* asm
* cglib.jar

Tuesday, June 2, 2009

validwhen example in struts

While the Struts Validator provides a host of client-side validation capabilities, it also provides a mechanism for implementing automated server-side validation. The server-side validation that we reviewed inside the ActionForm is powerful, but many times there are some simple validations that you want to perform that you do not necessarily need to write Java code to perform. As an example, consider comparing two fields for equality, such as passwords or email addresses. Furthermore, in order for the Struts Validator to work properly, you should not implement your own validate() method, which means that if you have one custom validation field then you are required to validate the entire form yourself.
This is where the Struts Validator "validWhen" validation rule comes into play. The validWhen rule reads: the form field is valid when the "test" variable's value is true. Or specifically looking at the confirmation password from the previous example:
<field property="confirmPassword" depends="validwhen">
<arg0 key="errors.confirmpassword.match"/>
<var> <var-name>test<var-name>
<var-value>(*this* == password)</var-value>
</var></field>

The validWhen rule works by defining a test variable with the test condition in its value. The value is a boolean expression that can contain the following (extracted from the Struts manual):
Single or double quoted string literals
Integer literals, which can be in decimal, octal, or hexadecimal form
null, which matches a literal null or an empty string
Other form fields, referenced by field name
Indexed form fields, referenced by an explicit integer, such as lastName[2]
Indexed form fields, referenced by an implicit integer, such as lastName[]; the implicit integer index will be the same index of the field being tested (for example this can be used to compare string values character by character)
Properties of indexed form fields (either with an explicit or implicit integer index), for example child[].lastName
The literal *this*, which represents the field currently being tested
Another couple notes about validWhen expressions:
They must be enclosed in parenthesis
You can only compare two values when performing an "and" or "or"
If the values can be converted to integer equivalents then they are converted and compared as such
As an example, if we wanted to allow our user to not set a password, then we would want to accept either "null" as a password or require that both the password and confirmation password match. This can be accomplished as follows:

<field property="confirmPassword" depends="validwhen">
<arg0 key="errors.confirmpassword.match"/>
<var> <var-name>test<var-name>
<var-value>((password == null ) or *this* == password)</var-value>
</var></field>


In this example, if the form's password field is null, the condition is true, or if the confirmation password (this) is equal to the password, the condition is true. Following through this logic, if password is null and confirmPassword is "ABC," the first condition is true and therefore the second condition is ignored. On the other hand, if password is "ABC" and confirmPassword is "DEF," the first condition fails (password is not null). Therefore, the second condition determines the final result; namely, is the confirmation password equal to the password, which it is not.
Writing validWhen expressions becomes easier and easier as you write them, but one of the challenges in using the validWhen is that validation errors do not appear in a JavaScript popup dialog, but rather appears in your tag. Because the tag displays all fields that do not have valid values, the presentation does not work with the tag in its default configuration. In its default configuration it identifies all fields that are not valid before the user completes the form (meaning that everything is invalid!). Therefore, you need to use a variation of the tag that displays an error message only if the specified field is invalid


Note: All the above stuff is extracted from the http://www.informit.com/guides/content.aspx?g=java&seqNum=286.

Cheers,