This blog contains the info about Java and J2ee and Ajax and Hibernate
Tuesday, December 6, 2011
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
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
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: net/sf/cglib/proxy/CallbackFilter-Solution
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
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:
<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
Note: All the above stuff is extracted from the http://www.informit.com/guides/content.aspx?g=java&seqNum=286.
Cheers,
Monday, June 1, 2009
check box problem in struts
PROBLEM IS:At http://jakarta.apache.org/struts/newbie.html there is a question "Why are my checkboxes not being set from ON to OFF?"
The answer states: "If the value of the checkbox is being persisted, either in a session bean or in the model, a checked box can never unchecked by a HTML form -- because the form can never send a signal to uncheck the box. The application must somehow ascertain that since the element was not sent that the corresponding value is unchecked."
It also states to possibly use a radio button. I am in the process of trying to make this work because I am keeping my form in the session. I am going to try to see if I can check for the element being sent.
ANSWER:
There is a very simple solution to the checkbox problem. The trick is to always add a hidden field AFTER the checkbox with the same parameter name but with the value set to "false":
Basically, the hidden parameter ensures that there is some request parameter submitted, which will always set the corresponding ActionForm property. If the checkbox is checked, the 2 parameters will be passed: "booleanProperty=true&booleanProperty=false". But the beanutils code only uses the first parameter to set the value. If the checkbox is left unchecked, then there will be only 1 parameter "booleanProperty=false" which will ensure the property is set.
The HTML spec says that form elements must be submitted in the GET or POST in the order that they are specified in the HTML, and all browsers I have used obey this rule. There is no risk that the hidden parameter will obscure the form field as long as you always put it after the checkbox.
The beauty of this solution is that it places the burden in the hands of the page author where there can be more flexibility. It also allows the page author to invert the meaning of the checkbox without bothering the application developer. All the page author needs to do is reword the caption, and switch the ordering of the values used in the checkbox and hidden fields. Also, it works with string or numeric properties just as easily.
It is just a work around. This solution will fail when you want to call javascript function on clicking of the checkbox. The Another solution is :- override the "reset" method in the form bean and set the checkbox value false to correctly identify the checkbox value from request. If your bean is in session scope and if you don't want to identify the correct value everytime then get the action from request object and set/reset the checkbox value.
