Monday, August 22, 2011

Struts framework

1) What is the difference between perform and execute method in Struts Action class?

Perform method was first introduced in earlier versions of Struts which was declared as throwing java.lang.IOException and javax.servlet.ServletException. With this, the method is forced to handle any exception other than the above mentioned exceptions.

To remove this limitation, the later versions came up with the execute method with declaration of java.lang.Exception which allows the implementer to throw any kind of exception.

Reason for additional method is to keep the already developed code compatible with the latest versions of Struts.

2) How to use Struts tags?

i) First place the .tld file under the classpath
[Container looks for the TLD files under specific locations
a) Directly under WEB-INF
b) Directly under WEB-INF's sub-folders
c) Directly under any META-INF folder of a jar that is put under WEB-INF/jar
d) Directly under any sub-folder of a META-INF of a jar that is put under WEB-INF/jar
]
ii) Define the taglib tag in web.xml with defining taglib-uri speficying taglib-location
/struts-bean.tld
/WEB-INF/lib/struts-bean.tld
iii) Use this taglib-uri value in the page directive in JSP
<%@ taglib uri="" prefix=""%>
<%@ taglib uri="/struts-bean.tld" prefix="bean" %>

iv) Use the tags available in taglib

Since JSP 2.0, mentioning in web.xml is not required.
While loading container searches the TLD files and creates a map for all URI's and their TLD files. If you specify any taglib-uri = taglib-location entry in DD, then while construction of the -tld location map, container will use this DD entry.
This way when a tag is invoked, its tld can be approached for verification.


Useful topics :
Using popular display tag
Writing a custom tag
Using JSTL - already external link provided
How to access Map elements using struts tags
Tiles framework usage
How does .do get removed from the URL before the request is mapped to action class?

Wednesday, March 2, 2011

Spring

How to use JSTL Libraries in any webapp:


There is a good study done by an author here..


Spring tutorials in a simple way here...


Wednesday, January 5, 2011

Hibernate

hbm2ddl.auto possibilities..

See this blog :

http://blog.eyallupu.com/2007/05/hibernates-hbm2ddl-tool.html

create - Creates the schema and reads /import.sql if exists

create-drop - Creates the schema when entity manager factory is created. [which holds the session factory], but when entity manager is explicitly closed, it deletes the schema. Uses /import.sql if exists.

update - Tries to create the scripts to update the schema changes depending on the mapping. Some times it may not be possible to do this.

validate - Doesn't do any action pertaining the schema.

Monday, June 28, 2010

Difference between JAX-RPC and SOAP

They are completely different protocols, you need to find out the protocol used by the web service you wish to consume and program to that. Web services is really just a concept XML-RPC, SOAP and REST are actual technologies the implement this concept. These implementations are not interoperable (without some translation layer).

All these protocols enable basically the same sort of thing, calling into remote some application over the web. However the details of how they do this differ, they are not just different names for the same protocol.

SOAP supports document-level transfer, whereas xml-rpc is more about values transfer, although it can transfer structures such as structs, lists, etc.

XML-RPC goes over http/https only, where as SOAP goes over ftp, smtp, http, https...etc

XML-RPC doesn't support named parameters, it depends on the position of the parameters where as SOAP supports named parameters and position of the parameters doesn't matter!


example XML-RPC



examples.getStateName


40




Example SOAP:



IBM

Tuesday, June 22, 2010

SQL queries

Query to find out all the employee records who are having the salary of the third highest salary:
SELECT *
FROM EMPLOYEES A
WHERE 2 = ( SELECT COUNT(*) FROM (SELECT DISTINCT SALARY FROM EMPLOYEES) B WHERE A.SALARY <B.SALARY).


A nice tutorial on Oracle SQL/PLSQL is here.

Saturday, March 6, 2010

What is difference between J2EE 1.3 and J2EE 1.4?

J2EE 1.4 is an enhancement version of J2EE 1.3. It is the most complete Web services platform ever.

J2EE 1.4 includes:

Java API for XML-Based RPC (JAX-RPC 1.1)
SOAP with Attachments API for Java (SAAJ),
Web Services for J2EE(JSR 921)
J2EE Management Model(1.0)
J2EE Deployment API(1.1)
Java Management Extensions (JMX),
Java Authorization Contract for Containers(JavaACC)
Java API for XML Registries (JAXR)
Servlet 2.4
JSP 2.0
EJB 2.1
JMS 1.1
J2EE Connector 1.5
The J2EE 1.4 features complete Web services support through the new JAX-RPC 1.1 API, which supports service endpoints based on Servlets and enterprise beans. JAX-RPC 1.1 provides interoperability with Web services based on the WSDL and SOAP protocols.

The J2EE 1.4 platform also supports the Web Services for J2EE specification (JSR 921), which defines deployment requirements for Web services and utilizes the JAX-RPC programming model.

In addition to numerous Web services APIs, J2EE 1.4 platform also features support for the WS-I Basic Profile 1.0. This means that in addition to platform independence and complete Web services support, J2EE 1.4 offers platform Web services interoperability.

The J2EE 1.4 platform also introduces the J2EE Management 1.0 API, which defines the information model for J2EE management, including the standard Management EJB (MEJB). The J2EE Management 1.0 API uses the Java Management Extensions API (JMX).

The J2EE 1.4 platform also introduces the J2EE Deployment 1.1 API, which provides a standard API for deployment of J2EE applications.

The J2EE 1.4 platform includes security enhancements via the introduction of the Java Authorization Contract for Containers (JavaACC). The JavaACC API improves security by standardizing how authentication mechanisms are integrated into J2EE containers.

The J2EE platform now makes it easier to develop web front ends with enhancements to Java Servlet and JavaServer Pages (JSP) technologies. Servlets now support request listeners and enhanced filters. JSP technology has simplified the page and extension development models with the introduction of a simple expression language, tag files, and a simpler tag extension API, among other features. This makes it easier than ever for developers to build JSP-enabled pages, especially those who are familiar with scripting languages.

Other enhancements to the J2EE platform include the J2EE Connector Architecture, which provides incoming resource adapter and Java Message Service (JMS) plug ability. New features in Enterprise JavaBeans (EJB) technology include Web service endpoints, a timer service, and enhancements to EJB QL and message-driven beans.

The J2EE 1.4 platform also includes enhancements to deployment descriptors. They are now defined using XML Schema which can also be used by developers to validate their XML structures.

Note: The above information comes from SUN released notes.

Monday, March 1, 2010

Useful links

Guidelines : Designing Web Services with the J2EE(TM) 1.4 Platform : JAX-RPC, SOAP, and XML Technologies

http://java.sun.com/blueprints/guidelines/designing_webservices/html/


If you are deploying Axis2 in a WAR/EAR under Websphere 6.1 with Web services feature pack or Websphere 7.0, please read the following tech notes:

http://davanum.wordpress.com/2009/03/12/technotes-about-axis2-and-websphere-co-existence/



Understanding Axis2 Deployment Architecture

http://www.developer.com/services/article.php/10928_3557741_1/Understanding-Axis2-Deployment-Architecture.htm



Embedding Apache Axis2 into Existing Applications





    Web services authentication


    HTTP Authentication using AXIS2 :



    Method types defined by W3.org




    Character encoding gotchas - what I needed to do to handle orders from China

    A nice article by blogger at : http://wwwilpower.blogspot.in/2011/03/character-encoding-gotchas-what-i.html 


    Tutorials on Java

    Covers Oauth, exception handling stategies.. etc in a simple language http://tutorials.jenkov.com/oauth2/authorization.html

    Good Hints for developers : 

    http://rdafbn.blogspot.gr/2012/08/these-are-just-some-tips-and-tricks-i.html