Servlet Programs: 1.write A Servlet Program To Display Username and Password. HTML File
Servlet Programs: 1.write A Servlet Program To Display Username and Password. HTML File
Servlet Programs: 1.write A Servlet Program To Display Username and Password. HTML File
HTML File:
<html>
<head>
<title>prr colleges</title>
<body>
<form name=”F” method=”get” action=”mca”>
User name:
<input type=”text” name=uname”><br>
Password:
<input type=”text” name=”pwd”><br>
<input type=”button” value=”submit”>
</form></body></html>
JAVA File:
Import java.io.*;
Import javax.srvlet.*;
Import javax.servlet.http.*;
1
WEB.XML File:
<web-app>
<servlet>
<servlet-name>prr1</servlet-name>
<servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>prr1<servlet-name>
<url-pattern>/mca</url-pattern>
</servlet-mapping>
<web-app>
2
2. Write a servlet Program to validate username and password.
HTML File:
<html>
<head>
<title>prr colleges</title>
<body>
<form name=”F” method=”get” action=”mca”>
User name:
<input type=”text” name=uname”><br>
Password:
<input type=”text” name=”pwd”><br>
<input type=”button” value=”submit”>
</form></body></html>
JAVA File:
Import java.io.*;
Import javax.srvlet.*;
Import javax.servlet.http.*;
3
WEB.XML File:
<web-app>
<servlet>
<servlet-name>prr1</servlet-name>
<servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>prr1<servlet-name>
<url-pattern>/mca</url-pattern>
</servlet-mapping>
<web-app>
4
3.Write a Servlet Program for DataBase Connection.
HTML File:
<html>
<head>
<title>prr colleges</title>
<body>
<form name=”F” method=”get” action=”mca”>
User name:
<input type=”text” name=uname”><br>
Password:
<input type=”text” name=”pwd”><br>
<input type=”button” value=”submit”>
</form></body></html>
Java Class(dbs.java):
Import jav.io.*;
Import java.sql.Connction;
Import java.sql.DriverManager;
Import java.sql.result;
Import java.Statement;
Import java.util.*;
Import java.sql.*;
Out.println(“<h1><center>Welcome to PRR</center></h1>”);
String uri=”jdbc:oracle:thin:@localhost:1521:orcl”;
try{
class.forName(“oracle.jdbc.driver.OracleDriver”);
out.println(“Welcome to PRR”);
con=DriverManager.getConnection(uri,”scott”,”tiger”);
stmt=con.createStatement();
5
out.println(“Elcome”);
rs=stmt.executeQuery(“select * from emp”);
out.println(“Welcome to PRR”);
while{
out.println(rs.getInt(“empno”));
out.println(rs.getString(“ename”));
out.println(rs.getString(“job”));
}
}catch(Exception e)
{
System.out.println(“Error”+e);
}
System.out.println(“Hello World”);
}
WEB.XML File:
<web-app>
<servlet>
<servlet-name>prr1</servlet-name>
<servlet-class>DBS</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>prr1<servlet-name>
<url-pattern>/mca</url-pattern>
</servlet-mapping>
<web-app>
6
Stateless Session Bean Programs
HomeInterface(HelloHome.java)
import javax.ejb.*;
import java.rmi.*;
RemoteInterface(Helloremote.java)
import javax.ejb.*;
import java.rmi.*;
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
7
{
System.out.println("ejb Passivate called");
}
public void ejbRemove()
{
System.out.println("ejb Removed called");
}
public void setSessionContext(SessionContext ctx)
{
this.ctx=ctx;
}
public String hello()
{
System.out.println("Hello called");
return "I LOVE Enterprise Java Beans";
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Client Program(HelloClient.java)
import java.rmi.*;
import javax.ejb.*;
import javax.naming.Context;
import javax.naming.*;
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
8
System.out.println("Before lookup");
FileInputStream fis=new FileInputStream("Jndi.properties");
Properties prop = new Properties();
prop.load(fis);
Context ctx = new InitialContext(prop);
System.out.println("Got Initial Context");
Object obj=ctx.lookup("Hello");
HelloHome home=(HelloHome) javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
HelloRemote hello=home.create();
System.out.println(hello.hello());
hello.remove();
}
}
Deployement Descriptors
Application.xml
/j2ee/dtds/application_1_2.dtd'>
<application>
<display-name>Stateless Session Bean Example</dislay-name>
<module>
<web>
<web-uri>Hello.war</web-uri>
<context-root>/Hello</context-root>
</web>
</module>
<module>
<ejb>Hello.jar</ejb>
</module>
</application>
Ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
9
<!-- Generated XML! -->
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>HelloHome</home>
<remote>HelloRemote</remote>
<ejb-class>HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Hello</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml
Home Interface(OrderManagementHome.java)
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
Remote Interface(OrderManagementRemote.java)
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
11
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
{
System.out.print("ejbActivate()");
}
12
System.out.print("ejbRemove()");
}
Client Class(OrderManagementClient.java)
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
try
{
System.out.println("Before lookup");
FileInputStream fis=new FileInputStream("Jndi.properties");
Properties prop = new Properties();
prop.load(fis);
rem.placeOrder("Ramesh","PRR College",1000);
rem.remove();
rem.cancelOrder("Ramesh","PRR");
rem.isShipped("Ramesh","PRR");
13
rem.remove();
}
catch(Exception e)
{
System.out.println("error:"+e);
}
}
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Deployement descriptors
Application.xml
<application>
<display-name>Stateless Session Bean Example</dislay-name>
<module>
<web>
<web-uri>OrderManagement.war</web-uri>
<context-root>/OrderManagement</context-root>
</web>
</module>
<module>
<ejb>OrderManagement.jar</ejb>
</module>
</application>
14
Ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC
'-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<!-- Generated XML! -->
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>OrderManagement</ejb-name>
<home>OrderManagementHome</home>
<remote>OrderManagementRemote</remote>
<ejb-class>OrderManagementBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>OrderManagement</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN'
'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>OrderManagement</ejb-name>
<enable-call-by-reference>True</enable-call-by-reference>
<jndi-name>OrderManagement</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
15
6.Write an EJB Program for Student Information by Using Stateless Session Bean
Home Interface(StudHome.java)
import javax.ejb.*;
import java.rmi.*;
import java.io.Serializable;
public interface StudHome extends EJBHome
{
public StudRemote create() throws RemoteException, CreateException;
}
Remote Interface(StudRemote.java)
import javax.ejb.*;
import java.rmi.*;
16
public void ejbActivate()
{
System.out.println("ejbActivate called.");
}
public void ejbRemove()
{
System.out.println("ejbRemove Called.");
}
public void ejbPassivate()
{
System.out.println("ejbPassivate called.");
}
public void setSessionContext(SessionContext ctx)
{
System.out.println("setSessionContext() called.");
this.ctx = ctx;
}
public void ejbCreate() throws CreateException
{
System.out.println("ejbCreate() called");
}
}
Client Class(StudClient.java)
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
public class StudClient
{
public static void main(String args[])
{
BufferedReader stdin;
try
{
System.out.println("Before lookup");
FileInputStream fis=new FileInputStream("Jndi.properties");
Properties prop = new Properties();
prop.load(fis);
Context ctx = new InitialContext(prop);
17
System.out.println("Got Initial Context");
StudHome home = (StudHome) ctx.lookup("StudEJB7");
StudRemote rem = home.create();
System.out.println("create called");
try
{
String f="Welcome . . . . . ";
String cont="";
stdin=new BufferedReader(new InputStreamReader(System.in));
do
{
System.out.print(f+" \n\n Enter the Name of the Student: ");
f=(String)stdin.readLine();
String studname=rem.PDetails(f);
System.out.println("The Name of the Student: "+studname);
System.out.println(" Press y To Continue : ");
cont=(String)stdin.readLine();
}while(cont.equals("y"));
}
catch(Exception e)
{
System.out.println("error:"+e);
}
rem.remove();
System.out.println("RemoveCalled");
}
catch(Exception er)
{
System.out.println("Called From Client Catch");
er.printStackTrace();
}
}
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
18
Deployement Descriptors
Application.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
/j2ee/dtds/application_1_2.dtd'>
<application>
<display-name>Stateless Session Bean Example</dislay-name>
<module>
<web>
<web-uri>student.war</web-uri>
<context-root>/student</context-root>
</web>
</module>
<module>
<ejb>student.jar</ejb>
</module>
</application>
Ejb-jar.xml
19
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>StudEJB7</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml
20
7. Write an EJB program for Addition using stateless session Bean.
Home Interface
import javax.ejb.*;
import java.rmi.*;
public interface addHome extends EJBHome
{
addRemote create() throws CreateException,RemoteException;
}
Remote Interface:
import javax.ejb.*;
import java.rmi.*;
public interface addRemote extends EJBObject
{
public double add(int a,int b) throws RemoteException;
public double result()throws RemoteException;
}
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
public class addBean implements SessionBean
{
public SessionContext ctx;
public double add(int a,int b)
{
int c;
c=a+b;
return c;
}
21
{}
public void ejbActivate()
{}
public void ejbPassivate()
{}
public void ejbRemove()
{}
public void setSessionContext(SessionContext ctx)
{}
EJBClient(addClient) :
import java.rmi.*;
import javax.ejb.*;
import javax.naming.Context;
import javax.naming.*;
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Deployement Descriptors
Application.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
/j2ee/dtds/application_1_2.dtd'>
<application>
<display-name>Stateless Session Bean Example</dislay-name>
<module>
<web>
<web-uri>add.war</web-uri>
<context-root>/student</context-root>
</web>
</module>
<module>
<ejb>add.jar</ejb>
</module>
ejb-jar.xml
23
<ejb-name>add</ejb-name>
<home>addHome</home>
<remote>addRemote</remote>
<ejb-class>addBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>add</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml
24
StateFull Session Bean Programs:
8.Write an EJB Program for Calculate Fee by using Statefull Session Bean
Home Interface(CalculateHome.java)
import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
Remote Interface(CalculateRemote)
import java.util.*;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface CalculatorRemote extends EJBObject
{
public void setStudentSummerWork(double studentSummerWork) throws RemoteException;
public void setAttendanceCosts(double tuitionFees,double booksSupplies,double roomBoard)
throws RemoteException;
public void setParentIncome(double income) throws RemoteException,
TooManyParentsException;
public void setGroupAssets(double liquidAssets,double primaryHomeValue,double
otherAssets) throws RemoteException;
public String getMessage() throws RemoteException;
}
String applicant;
double studentSummerWork;
double tuitionFees;
25
double booksSupplies;
double roomBoard;
double parent1Income;
boolean parent1Set;
double parent2Income;
boolean parent2Set;
double liquidAssets;
double primaryHomeValue;
double otherAssets;
26
{
this.parent2Income=income;
this.parent2Set=true;
}
else
{
this.parent1Income=income;
this.parent1Set=true;
}
}
return this.getMessage(applicant,need);
}
27
}
private double calculateAttendanceCost(double tuitionFees,double
booksSupplies,double roomBoard)
{
System.out.println("AttendanceCost"+tuitionFees+booksSupplies+roomBoard);
return tuitionFees+booksSupplies+roomBoard;
}
System.out.println("ParentsContribution"+parent1Contribution+parent2Contribution+groupCo
ntribution);
return parent1Contribution+parent2Contribution+groupContribution;
}
28
Too Many Parents Exception Class(TooManyparents.java)
public class TooManyParentsException extends Exception
{
public TooManyParentsException()
{
}
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Client Class(TestClient.java)
import java.util.*;
import java.io.*;
import javax.naming.Context;
import javax.naming.InitialContext;
public class TestClient
{
public static void main(String[] args)
{
try
{
System.out.println("Before lookup");
FileInputStream fis=new FileInputStream("Jndi.properties");
Properties prop = new Properties();
prop.load(fis);
29
System.out.println(remote.getMessage());
remote.remove();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Deployment Descriptors
Application.xml
<module>
<ejb>student.jar</ejb>
</module>
</application>
Ejb-jar.xml
Weblogic-ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
<!-- Generated XML! -->
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>StudEJB7</ejb-name>
<stateless-session-descriptor>
<pool>
</pool>
<stateless-clustering>
</stateless-clustering>
</stateless-session-descriptor>
<transaction-descriptor>
</transaction-descriptor>
<jndi-name>StudEJB7</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
31
Entity Bean programs:
Home Interface(SportTeamHome.java)
import java.util.Collection;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface SportTeamHome extends EJBHome
{
Remote Interface(SportTeamRemote.java)
import java.util.Collection;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import javax.ejb.*;
import java.io.Serializable;
32
public class SportTeamPK implements Serializable
{
public String sport;
public String nickName;
public SportTeamPK()
{}
import java.util.Collection;
import java.rmi.RemoteException;
import javax.ejb.*;
import java.sql.*;
import java.sql.Connection;
33
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import javax.transaction.*;
Connection con=null;
PreparedStatement pst=null;
try
{
con=getConnection();
pst=con.prepareStatement("insert into sportsteams(sport,nickName)
VALUES(?,?)");
pst.setString(1,sport);
pst.setString(2,nickName);
if(pst.executeUpdate()!=1)
{
throw new CreateException("failed to create sports team");
}
}
catch (SQLException sqle)
{
System.out.println("in create(2)");
34
throw new EJBException(sqle);
}
finally
{
try
{
if(con!=null)
{
con.close();
}
}
catch (SQLException sqle)
{}
}
Connection con=null;
PreparedStatement pst=null;
try
{
con=getConnection();
pst=con.prepareStatement("insert into
sportsteams(sport,nickName,ownerName,franchisePlayer)VALUES(?,?,?,?)");
pst.setString(1,sport);
pst.setString(2,nickName);
pst.setString(3,ownerName);
pst.setString(4,franchisePlayer);
if(pst.executeUpdate()!=1)
{
throw new CreateException("failed to create sports team");
35
}
}
catch (SQLException sqle)
{
System.out.println("in create(3)");
}
finally
{
try
{
if(con!=null)
{
con.close();
}
}
catch (SQLException sqle)
{}
}
36
}
resultset.close();
pst.close();
return primaryKey;
}
catch(SQLException sqle)
{
System.out.println("in primarykey()");
throw new EJBException(sqle);
}
finally
{
try
{
if(con!=null)
{
con.close();
}
}
catch (SQLException sqle)
{}
}
}
37
public String getOwnerName()
{
return ownerName;
}
public void setFranchisePlayer(String playerName)
{
this.franchisePlayer=playerName;
}
public String getFranchisePlayer()
{
return franchisePlayer;
}
//database calls
public void ejbLoad()
{
SportTeamPK primaryKey=(SportTeamPK)ctx.getPrimaryKey();
Connection con=null;
PreparedStatement pst=null;
try
{
con=getConnection();
pst=con.prepareStatement("select ownerName, franchisePlayer from
sportsteams where sport=? and nickName=?");
pst.setString(1,primaryKey.getSport());
pst.setString(2,primaryKey.getNickName());
ResultSet resultset=pst.executeQuery();
if(!resultset.next())
{
throw new EJBException("object not found");
}
sport=primaryKey.getSport();
nickName=primaryKey.getNickName();
ownerName=resultset.getString(1);
franchisePlayer=resultset.getString(2);
resultset.close();
pst.close();
}
catch(SQLException sqle)
{
System.out.println("in ejbLoad()");
throw new EJBException(sqle);
38
}
finally
{
try
{
if(con!=null)
{
con.close();
}
}
catch (SQLException sqle)
{}
}
}
if(pst.executeUpdate()!=1)
{
throw new EJBException("failed to save object state");
}
pst.close();
}
catch(SQLException sqle)
{
System.out.println("in ejbStore()");
throw new EJBException(sqle);
}
finally
{
try
39
{
if(con!=null)
{
con.close();
}
}
catch (SQLException sqle)
{}
}
}
if (pst.executeUpdate()!=1)
{
throw new EJBException("failed to remove object state");
}
pst.close();
}
catch(SQLException sqle)
{
System.out.println("in ejbRemove()");
throw new EJBException(sqle);
}
finally
{
try
{
if(con!=null)
{
con.close();
}
}
40
catch (SQLException sqle)
{}
}
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Client Class(TestClient.java)
import java.util.Collection;
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
41
import java.lang.*;
import java.rmi.RemoteException;
import java.rmi.RemoteException;
import javax.ejb.*;
import javax.ejb.CreateException;
import java.sql.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import java.io.*;
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory")
prop.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
prop.setProperty(Context.SECURITY_PRINCIPAL,"praveen");
prop.setProperty(Context.SECURITY_CREDENTIALS,"veshprsaanna");
SportTeamHome
home=(SportTeamHome)PortableRemoteObject.narrow(obj,SportTeamHome.class);
System.out.println("Got Initial Context3");
42
SportTeamRemote
rem=home.create("cricket","pavan","Ambani","naveen");
//System.out.println("nick name:"+rem.getNickName());
System.out.println("ownerName:"+rem.getOwnerName());
System.out.println("franchisePlayer:"+rem.getFranchisePlayer());
//rem.setNickName("snake");
rem.setFranchisePlayer("praveen");
System.out.println("franchisePlayer:"+rem.getFranchisePlayer());
System.out.println();
rem.setOwnerName("mukhesh");
System.out.println("current sport:"+rem.getOwnerName());
}
catch (RemoteException re)
{
re.printStackTrace();
}
catch(NamingException ne)
{
ne.printStackTrace();
}
catch(CreateException ce)
{
ce.printStackTrace();
}
}
}
Depleyment Descriptors
Ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC
"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
43
<entity>
<ejb-name>BMPSportsBean</ejb-name>
<home>SportTeamHome</home>
<remote>SportTeamRemote</remote>
<ejb-class>SportTeamEJB</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>SportTeamPK</prim-key-class>
<reentrant>False</reentrant>
<resource-ref>
<res-ref-name>sportsbmp</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>BMPSportsBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN'
'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>BMPSportsBean</ejb-name>
<reference-descriptor>
<resource-description>
<res-ref-name>sportsbmp</res-ref-name>
<jndi-name>sportsbmp</jndi-name>
</resource-description>
</reference-descriptor>
<jndi-name>BMPSportsBean</jndi-name>
44
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
10.Write an EJB Program for Student Information by using Entity Bean( BMP).
45
import javax.sql.*;
import javax.naming.*;
Connection conn=null;
PreparedStatement ps=null;
try{
conn=getConnection();
Id=pk.getId();
FirstName=pk.getFirstName();
LastName=pk.getLastName();
ps=conn.prepareStatement("insert into Student(id,firstname,lastname)
values(?,?,?)");
ps.setInt(1,Id.intValue());
ps.setString(2,FirstName);
ps.setString(3,LastName);
46
int numrows=ps.executeUpdate();
if(numrows != 1)
{
throw new CreateException("Cannot Insert Student Record :: " +
numrows);
}
ps.close();
return Id;
}catch(Exception e){
throw new CreateException("Cannot create Student " + e.getMessage());
}
finally {
closeResources(ps, conn);
}
Integer id = (Integer)ctx.getPrimaryKey();
try {
readFromDb(id.intValue());
} catch (Exception e) {
throw new EJBException(e);
}
}
try {
conn = getConnection();
47
ps = conn.prepareStatement("UPDATE student SET FIRSTNAME = ?,
LASTNAME = ? WHERE ID = ?");
ps.setString(1, FirstName);
ps.setString(2, LastName);
Integer id = (Integer)ctx.getPrimaryKey();
ps.setInt(3, id.intValue());
try {
conn = getConnection();
ps = conn.prepareStatement("DELETE FROM Student WHERE ID = ?");
Integer id = (Integer)ctx.getPrimaryKey();
ps.setInt(1, id.intValue());
48
readFromDb(id.intValue());
return id;
} catch(Exception e) {
throw new FinderException(e.getMessage());
}
try {
conn = getConnection();
ps = conn.prepareStatement("SELECT id FROM Student WHERE
UPPER(firstName) LIKE UPPER(?) AND UPPER(lastName) LIKE UPPER(?)");
ps.setString(1, firstName);
ps.setString(2, lastName);
} catch (Exception e) {
throw new FinderException(e.getMessage());
} finally {
closeResources(ps, conn);
}
}
49
public void setLastName(String LastName) {
this.LastName= LastName;
}
try {
conn = getConnection();
ps = conn.prepareStatement("SELECT ID, FIRSTNAME, LASTNAME FROM
Student WHERE id = ?");
ps.setInt(1, id);
} else {
50
readFields(rset);
}
} catch (Exception e) {
throw new CreateException(e.getMessage());
} finally {
closeResources(ps, conn);
}
}
if (conn != null)
conn.close();
} catch (Exception e) {
throw new EJBException(e);
}
}
public StudentPK() {
}
51
public Integer getId(){
return id;
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
52
EJB Client ():
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
try
{
System.out.println("Before lookup");
FileInputStream fis=new FileInputStream("Jndi.properties");
Properties prop = new Properties();
prop.load(fis);
Context ctx = new InitialContext(prop);
System.out.println("Got Initial Context");
Object obj=ctx.lookup("StudentHome");
StudentHome home=(StudentHome)obj;
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
String action;
while (true) {
System.out.println(" ");
System.out.print("[A]dd | [S]earch| [E]dit | [D]elete | [Q]uit: ");
System.out.flush();
action = br.readLine();
if (action.length() == 0) break;
StudentRemote rec;
Integer id;
String FirstName;
String LastName;
switch (action.toUpperCase().charAt(0)) {
case 'A':
StudentPK v=new StudentPK();
System.out.print("Enter integer value for ID: ");
System.out.flush();
id = new Integer(br.readLine());
53
v.setId(id);
rec =
(StudentRemote) PortableRemoteObject.narrow(home.create(v),
StudentRemote.class);
case 'S':
System.out.print("Enter string value for First Name: ");
FirstName = br.readLine();
break;
case 'D':
System.out.print("Enter integer value for ID: ");
System.out.flush();
id = new Integer(br.readLine());
54
StudentRemote rem=home.findByPrimaryKey(id);
rem.remove();
System.out.println("StudentClient.main(): removed " + id);
break;
case 'E':
System.out.print("Enter integer value for ID: ");
System.out.flush();
id = new Integer(br.readLine());
System.out.print("Enter string value for FIRST NAME: ");
System.out.flush();
FirstName = br.readLine();
Deployment Descriptors:
Ejb-jar.xml:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
55
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>StudentBean</ejb-name>
<home>StudentHome</home>
<remote>StudentRemote</remote>
<ejb-class>StudentBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<resource-ref>
<res-ref-name>TxDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>StudentBean</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml:
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" >
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>StudentBean</ejb-name>
<reference-descriptor>
<resource-description>
<res-ref-name>TxDataSource</res-ref-name>
<jndi-name>org/students/orapool</jndi-name>
</resource-description>
</reference-descriptor>
<jndi-name>StudentHome</jndi-name>
56
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
Home Interface();
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import javax.ejb.EJBHome;
import java.rmi.RemoteException;
import java.util.Collection;
Remote interface();
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
57
import java.util.*;
import javax.ejb.*;
import javax.sql.*;
import javax.naming.*;
Connection conn=null;
PreparedStatement ps=null;
try{
conn=getConnection();
AccessionNo=pk.getAccessionNo();
Publisher=pk.getPublisher();
Author=pk.getAuthor();
BookName=pk.getBookName();
58
ps=conn.prepareStatement("insert into
Library(AccessionNo,Publisher,Author,BookName) values(?,?,?,?)");
ps.setInt(1,AccessionNo.intValue());
ps.setString(2,Publisher);
ps.setString(3,Author);
ps.setString(4,BookName);
int numrows=ps.executeUpdate();
if(numrows != 1)
{
throw new CreateException("Cannot Insert Library Record :: " +
numrows);
}
ps.close();
return AccessionNo;
}catch(Exception e){
throw new CreateException("Cannot create Entry " + e.getMessage());
}
finally {
closeResources(ps, conn);
}
try {
readFromDb(AccessionNo.intValue());
} catch (Exception e) {
throw new EJBException(e);
}
}
59
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection();
ps = conn.prepareStatement("UPDATE Library SET Publisher = ?, Author =
?, BookName=? WHERE AccessionNo = ?");
ps.setString(1, Publisher);
ps.setString(2, Author);
ps.setString(3, BookName);
Integer id = (Integer)ctx.getPrimaryKey();
ps.setInt(4, AccessionNo.intValue());
try {
conn = getConnection();
ps = conn.prepareStatement("DELETE FROM Book WHERE AccessionNo
= ?");
60
} finally {
closeResources(ps, conn);
}
}
try {
conn = getConnection();
ps = conn.prepareStatement("SELECT AccessionNo FROM Library WHERE
UPPER(Publiser) LIKE UPPER(?) AND UPPER(Author) LIKE UPPER(?) AND UPPER(BookName) LIKE
UPPER(?)");
ps.setString(1, Publisher);
ps.setString(2, Author);
ps.setString(3, BookName);
} catch (Exception e) {
throw new FinderException(e.getMessage());
} finally {
closeResources(ps, conn);
}
}
61
public Integer getAccessionNo() { return AccessionNo; }
setPublisher(pk.getPublisher());
setAuthor(pk.getAuthor());
setBookName(pk.getBookName());
}
62
private void readFromDb(int AccessionNo) throws CreateException {
try {
conn = getConnection();
ps = conn.prepareStatement("SELECT AccessionNo, Publisher, Author,
BookName FROM Library WHERE AccessionNo = ?");
ps.setInt(1, AccessionNo);
} catch (Exception e) {
throw new CreateException(e.getMessage());
} finally {
closeResources(ps, conn);
}
}
if (conn != null)
conn.close();
} catch (Exception e) {
throw new EJBException(e);
}
}
63
Author = rset.getString(3);
BookName = rset.getString(4);
}
}
public LibraryPK() {
}
64
return BookName;
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
EJB Client():
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
try
65
{
System.out.println("Before lookup");
FileInputStream fis=new FileInputStream("Jndi.properties");
Properties prop = new Properties();
prop.load(fis);
Context ctx = new InitialContext(prop);
System.out.println("Got Initial Context");
Object obj=ctx.lookup("StudentHome");
LibraryHome home=(LibraryHome)obj;
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
String action;
while (true) {
System.out.println(" ");
System.out.print("[A]dd | [S]earch| [E]dit | [D]elete | [Q]uit: ");
System.out.flush();
action = br.readLine();
if (action.length() == 0) break;
LibraryRemote rec;
Integer AccessionNo;
String Publisher;
String Author;
String BookName;
switch (action.toUpperCase().charAt(0)) {
case 'A':
LibraryPK v=new LibraryPK();
System.out.print("Enter integer value for ID: ");
System.out.flush();
AccessionNo = new Integer(br.readLine());
v.setAccessionNo(AccessionNo);
rec =
66
(LibraryRemote) PortableRemoteObject.narrow(home.create(v),
LibraryRemote.class);
case 'S':
System.out.print("Enter string value for Publisher: ");
Publisher = br.readLine();
break;
case 'D':
System.out.print("Enter integer value for ID: ");
System.out.flush();
AccessionNo = new Integer(br.readLine());
LibraryRemote rem=home.findByPrimaryKey(AccessionNo);
rem.remove();
System.out.println("StudentClient.main(): removed " + AccessionNo);
break;
case 'E':
System.out.print("Enter integer value for ID: ");
System.out.flush();
AccessionNo = new Integer(br.readLine());
67
System.out.print("Enter string value for Publisher: ");
System.out.flush();
Publisher = br.readLine();
Deployement Descriptors:
Ejb-jar.xml:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>LibraryBean</ejb-name>
68
<home>LibraryHome</home>
<remote>LibraryRemote</remote>
<ejb-class>LibraryBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<resource-ref>
<res-ref-name>TxDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>LibraryBean</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-ja.xml:
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" >
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>LibraryBean</ejb-name>
<reference-descriptor>
<resource-description>
<res-ref-name>TxDataSource</res-ref-name>
<jndi-name>org/students/orapool</jndi-name>
</resource-description>
</reference-descriptor>
<jndi-name>LibraryHome</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
69
Entity Beans(CMP)
Home Interface(LibraryHome.java):
import java.util.Collection;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface LibraryHome extends EJBHome
{
LibraryRemote create(int bid,String bName,String author,int price) throws
RemoteException,CreateException;
LibraryRemote findByPrimaryKey(LibraryPK bid)throws
FinderException,RemoteException;
RemoteInterface(LibraryRemote.java):
import java.util.Collection;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface LibraryRemote extends EJBObject
{
import java.util.Collection;
import java.rmi.RemoteException;
import javax.ejb.*;
import javax.sql.*;
70
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import javax.sql.DataSource;
public abstract class LibraryEJB implements EntityBean
{
71
public void unsetEntityContext()
{}
//}
}
import java.io.Serializable;
public class LibraryPK implements Serializable
{
public int bid;
public String bName;
public LibraryPK()
{
}
EJBClient(LibraryClient.java):
import java.util.Collection;
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
import java.rmi.RemoteException;
import javax.ejb.*;
import javax.ejb.CreateException;
import java.sql.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import java.sql.DataSource;
try
{
Properties prop=new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory")
;
prop.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
prop.setProperty(Context.SECURITY_PRINCIPAL,"srikanth");
prop.setProperty(Context.SECURITY_CREDENTIALS,"administration");
73
Context ctx=new InitialContext(prop);
Object obg=ctx.lookup("CMPLibraryBean");
System.out.println("Got Initial Context2");
LibraryHome
home=(LibraryHome)PortableRemoteObject.narrow(obj,LibraryHome.class);
System.out.println("Creating a Row");
LibraryRemote rem=home.create(103,"abcd","prav",120);
System.out.println("looking up by primary key");
System.out.println("franchisePlayer:"+rem.getBidName());
Collection col=home.findByBName("daa");
if(o==col.size())
{
System.out.println("find no such book");
}
else
{
Iterator it=col.iterator();
while(it.hasNext())
{
Object o=it.next();
LibraryRemote
rem2=(LibraryRemote)PortableRemoteObject.narrow(o,LibraryRemote.class);
System.out.println("Book Name:"+rem2.getBName());
}
}
}
catch(RemoteException re)
{
re.printStackTrace();
}
catch(NamingException ne)
74
{
ne.printStackTrace();
}
catch(CreateException ce)
{
ce.printStackTrace();
}
}
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
EJB-Jar.XML:
<?xml version="1.0"?>
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>CMPLibraryBean</ejb-name>
<home>LibraryHome</home>
<remote>LibraryRemote</remote>
<ejb-class>LibraryEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>LibraryPK</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>libraryEJB</abstract-schema-name>
<cmp-field>
<field-name>bid</field-name>
</cmp-field>
<cmp-field>
75
<field-name>bName</field-name>
</cmp-field>
<cmp-field>
<field-name>author</field-name>
</cmp-field>
<cmp-field>
<field-name>price</field-name>
</cmp-field>
<query>
<query-method>
<method-name>bName</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>
<![CDATA[SELECT OBJECT(o) FROM libraryEJB AS o WHERE o.bid=?1]]>
</ejb-ql>
</query>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>CMPLibraryBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
WebLogic-EJB-jar.XML:
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC
"-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" >
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>CMPLibraryBean</ejb-name>
<entity-descriptor>
<persistence>
<persistence-use>
76
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
<type-storage>META-INF/weblogic-cmp.xml</type-storage>
</persistence-use>
</persistence>
</entity-descriptor>
<jndi-name>CMPLibraryBean</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
WebLogic-CMP.XML:
<?xml version="1.0"?>
<!DOCTYPE weblogic-rdbms-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB RDBMS Persistence//EN'
'http://www.bea.com/servers/wls810/dtd/weblogic-rdbms20-persistence-810.dtd'>
<weblogic-rdbms-jar>
<weblogic-rdbms-bean>
<ejb-name>CMPLibraryBean</ejb-name>
<data-source-name>librarycmp</data-source-name>
<table-map>
<table-name>library</table-name>
<field-map>
<cmp-field>bid</cmp-field>
<dbms-column>BID</dbms-column>
</field-map>
<field-map>
<cmp-field>bName</cmp-field>
<dbms-column>BNAME</dbms-column>
</field-map>
<field-map>
<cmp-field>author</cmp-field>
<dbms-column>AUTHOR</dbms-column>
</field-map>
<field-map>
<cmp-field>price</cmp-field>
<dbms-column>PRICE</dbms-column>
</field-map>
</table-map>
</weblogic-rdbms-bean>
77
</weblogic-rdbms-jar>
Home Interface(SportTeamHome.java):
import java.util.Collection;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import javax.ejb.*;
Remote Interface(SportTeamRemote.java):
import java.util.Collection;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import javax.ejb.*;
78
EJB Implementation Class(SportTeamEjb.java):
import java.util.Collection;
import java.rmi.RemoteException;
import javax.ejb.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import javax.sql.DataSource;
public abstract class SportTeamEJB implements EntityBean
{
public SportTeamPK ejbCreate(String sport,String nickName) throws CreateException
{
setSport(sport);
setNickName(nickName);
setOwnerName(null);
setFranchisePlayer(null);
return null;
}
public void ejbPostCreate(String sport,String nickName)
{}
return null;
}
public SportTeamPK()
{}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Client Class():
import java.util.Collection;
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
import java.rmi.RemoteException;
//import java.rmi.PortableRemoteObject;
import javax.ejb.*;
import javax.ejb.CreateException;
import java.sql.*;
81
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import java.io.*;
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory")
;
prop.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
prop.setProperty(Context.SECURITY_PRINCIPAL,"praveen");
prop.setProperty(Context.SECURITY_CREDENTIALS,"veshprsaanna");
SportTeamHome
home=(SportTeamHome)PortableRemoteObject.narrow(obj,SportTeamHome.class);
System.out.println("Creating a row");
SportTeamRemote
rem1=home.create("BasketBall","seenu","pravan","PRR");
82
System.out.println("looking up by primarykey...");
SportTeamRemote rem=home.findByPrimaryKey(new
SportTeamPK("chess","seenu"));
System.out.println("franchisePlayer:"+rem.getFranchisePlayer());
Collection col=home.findByOwnerName("praveen");
if(0==col.size())
{
System.out.println("find no such owner..");
}
else
{
Iterator it=col.iterator();
while(it.hasNext())
{
Object o=it.next();
SportTeamRemote rem2=(SportTeamRemote)
PortableRemoteObject.narrow(o,SportTeamRemote.class);
System.out.println("ownerName:"+rem2.getOwnerName());
}
}
//System.out.println("ownerName:"+rem.getOwnerName());
//System.out.println("franchisePlayer:"+rem.getFranchisePlayer());
//rem.setSport("volleyball");
//rem.setFranchisePlayer("Dravid");
//System.out.println("franchisePlayer:"+rem.getFranchisePlayer());
//rem.setOwnerName("srinu");
//System.out.println("current sport:"+rem.getOwnerName());
//System.out.println("looking for owner");
//Collection col=home.findByOwnerName("abcd");
}
catch (RemoteException re)
{
re.printStackTrace();
}
catch(NamingException ne)
83
{
ne.printStackTrace();
}
catch(CreateException ce)
{
ce.printStackTrace();
}
}
}
Deploymetn Descriptors:
Ejb-jar.xml:
<?xml version="1.0"?>
<entity>
<ejb-name>CMPSportBean</ejb-name>
<home>SportTeamHome</home>
<remote>SportTeamRemote</remote>
<ejb-class>SportTeamEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>SportTeamPK</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>sportEJB</abstract-schema-name>
<cmp-field><field-name>sport</field-name></cmp-field>
<cmp-field><field-name>nickName</field-name></cmp-field>
<cmp-field><field-name>ownerName</field-name></cmp-field>
<cmp-field><field-name>franchisePlayer</field-name></cmp-field>
<query>
<query-method>
<method-name>findByOwnerName</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>
<![CDATA[SELECT OBJECT(o) FROM sportEJB AS o WHERE o.ownerName=?1]]>
84
</ejb-ql>
</query>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>CMPSportBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml:
<?xml version="1.0"?>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>CMPSportBean</ejb-name>
<entity-descriptor>
<persistence>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>7.0</type-version>
<type-storage>META-INF/weblogic-cmp.xml</type-storage>
</persistence-use>
</persistence>
</entity-descriptor>
<jndi-name>CMPSportBean1</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
Weblogic-cmp.xml:
85
<?xml version="1.0"?>
<weblogic-rdbms-jar>
<weblogic-rdbms-bean>
<ejb-name>CMPSportBean</ejb-name>
<data-source-name>sportscmp</data-source-name>
<table-map>
<table-name>sportsteams</table-name>
<field-map>
<cmp-field>sport</cmp-field>
<dbms-column>SPORT</dbms-column>
</field-map>
<field-map>
<cmp-field>nickName</cmp-field>
<dbms-column>NICKNAME</dbms-column>
</field-map>
<field-map>
<cmp-field>ownerName</cmp-field>
<dbms-column>OWNERNAME</dbms-column>
</field-map>
<field-map>
<cmp-field>franchisePlayer</cmp-field>
<dbms-column>FRANCHISEPLAYER</dbms-column>
</field-map>
</table-map>
</weblogic-rdbms-bean>
</weblogic-rdbms-jar>
86
14.Write an EJB Program for student information using cmp.
87
import java.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.sql.*;
import javax.naming.*;
return null;
}
public void ejbPostCreate(String sport,String nickName)
{}
return null;
}
88
public void ejbLoad()
{}
public void ejbStore()
{}
public void ejbRemove()
{}
public void ejbActivate()
{}
public void ejbPassivate()
{}
public void setEntityContext(EntityContext ctx)
{}
public void unsetEntityContext()
{}
}
public StudentPK() {
}
JNDI File(jndi.properties)
java.naming.provider.url=t3://localhost:7001/
java.naming.security.principal=Srinivas
java.naming.security.credentials=Manmadh
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
import java.util.Collection;
import javax.naming.*;
import java.io.*;
import javax.rmi.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
import java.rmi.RemoteException;
//import java.rmi.PortableRemoteObject;
import javax.ejb.*;
import javax.ejb.CreateException;
import java.sql.*;
90
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import java.io.*;
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory")
;
prop.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
prop.setProperty(Context.SECURITY_PRINCIPAL,"praveen");
prop.setProperty(Context.SECURITY_CREDENTIALS,"administration");
System.out.println("looking up by primarykey...");
StudentRemote rem=home.findByPrimaryKey(new StudentPK("015”);
91
System.out.println("ID"+rem.getID());
Collection col=home.findByFirstName("praveen");
if(0==col.size())
{
System.out.println("find no such name..");
}
else
{
Iterator it=col.iterator();
while(it.hasNext())
{
Object o=it.next();
StudentRemote rem2=(StudentRemote)
PortableRemoteObject.narrow(o, StudentRemote.class);
System.out.println("First Name"+rem2.getFirstName());
}
}
}
catch (RemoteException re)
{
re.printStackTrace();
}
catch(NamingException ne)
{
ne.printStackTrace();
}
catch(CreateException ce)
{
ce.printStackTrace();
}
}
}
92
Deployment Descriptors:
Ejb-jar.xml:
<?xml version="1.0"?>
<entity>
<ejb-name>CMStudentBean</ejb-name>
<home>StudentHome</home>
<remote>StudentRemote</remote>
<ejb-class>StudentEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>StudentPK</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>studentEJB</abstract-schema-name>
<cmp-field><field-name>student</field-name></cmp-field>
<cmp-field><field-name>firstName</field-name></cmp-field>
<cmp-field><field-name>lastName</field-name></cmp-field>
<query>
<query-method>
<method-name>findById</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>
<![CDATA[SELECT OBJECT(o) FROM sportEJB AS o WHERE o.ownerName=?1]]>
</ejb-ql>
</query>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
93
<method>
<ejb-name>CMPStudentBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Weblogic-ejb-jar.xml:
<?xml version="1.0"?>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>CMPStudentBean</ejb-name>
<entity-descriptor>
<persistence>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>7.0</type-version>
<type-storage>META-INF/weblogic-cmp.xml</type-storage>
</persistence-use>
</persistence>
</entity-descriptor>
<jndi-name>CMPStudentBean1</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
Weblogic-cmp.xml:
<?xml version="1.0"?>
94
<weblogic-rdbms-jar>
<weblogic-rdbms-bean>
<ejb-name>CMPStudentBean</ejb-name>
<data-source-name>studentcmp</data-source-name>
<table-map>
<table-name>student</table-name>
<field-map>
<cmp-field>Id</cmp-field>
<dbms-column>ID</dbms-column>
</field-map>
<field-map>
<cmp-field>firstName</cmp-field>
<dbms-column>FIRSTNAME</dbms-column>
</field-map>
<field-map>
<cmp-field>lastName</cmp-field>
<dbms-column>LASTNAME</dbms-column>
</field-map>
<field-map>
<cmp-field>franchisePlayer</cmp-field>
<dbms-column>FRANCHISEPLAYER</dbms-column>
</field-map>
</table-map>
</weblogic-rdbms-bean>
</weblogic-rdbms-jar>
95
CORBA PROGRAMS
IDL File(Hello.idl):
module HelloApp
{
interface Hello
{
string sayHello();
oneway void shutdown();
};
};
Server Program(HelloServer.java):
// HelloServer.java
// Copyright and License
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import java.util.Properties;
96
// implement shutdown() method
public void shutdown() {
orb.shutdown(false);
}
}
97
catch (Exception e) {
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
}
}
Cient Class(HelloClient.java):
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
} catch (Exception e) {
System.out.println("ERROR : " + e) ;
98
e.printStackTrace(System.out);
}
}
}
IDL File(Bank.idl):
module BankApp
{
interface Bank
{
string deposit();
float withDraw();
float Balance();
oneway void shutdown();
};
};
Server Program(BankServer.java):
// HelloServer.java
// Copyright and License
import BankApp.*;
import java.util.Vector;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import java.util.Properties;
Vector myStockSymbols;
Vector myStockValues;
99
static char ourCharacters[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
public BankImpl()
{
}
myStockSymbols.addElement(stockSymbol.toString());
// the stock will retain this value for the duration of the application.
100
}
}
*/
System.out.println();
// String a="\n Stock world Welcome Srinivas !!\n";
return genvalues;
}
101
// get reference to rootpoa & activate the POAManager
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
catch (Exception e) {
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
}
}
Client Class(BankClient.java):
import BankApp.*;
102
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.util.StringTokenizer;
import java.io.InputStreamReader;
import java.io.BufferedReader;
switch(ch.toUpperCase().charAt(0))
{
case 'R':
String generatedValues=BankImpl.deposit();
103
System.out.println("\n\n Account Information :: \n \n");
StringTokenizer st=new StringTokenizer(generatedValues,"::");
while(st.hasMoreTokens())
System.out.println(" "+st.nextToken());
break;
case 'C':
System.exit(0);
break;
case 'Q':
BankImpl.shutdown();
System.exit(0);
break;
default:
System.out.println("\n\nEnter the Correct Choice....\n\n");
continue;
}
}
} catch (Exception e) {
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
}
104
.NET Programs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace cd
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
105
}
18.Develop a component for Converting currency from dollar to rupee and vice-
versa
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
}
106
19. Develop a component for Retrieving information from a Message box
usi ng DCOM/.NET
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace dcom
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
{
// Display a message box asking users if they
// want to exit the application.
MessageBox.Show("Hai...Welcome to C# World");
107
}
We will create a component called csAddComp1 and package it into a dll (Dynamic Linked
Library). This component has two properties and a method. Properties take input for the
addition and method called Sum().
To create properties in C# you use the get and set accessors. The get accessor is used for getting
(reading). The set accessor for setting (writing) the property.
In my example we have two properties, varI and varJ. These properties need to be written to
and read from. To implement the reading and writing we need to use both get and set
accessors for each property. I am using a namespace in my example int order to hide the
classes being are creating inside. For easy understanding I made more comments in example
code.
Component Program
using System;
namespace CompCS
{
public class csAddComp1
{
private int i=0,j=0;
public int varI
{
get { return i; } //this is property get for varI
set { i=value; } //this is property set for varI
}
public int varJ
{
get { return j; } // this is property get for varJ
set { j=value; } // this is property set for varJ
}
public int Sum()
{
return i+j; //this returns the sum of two variables
}
} //end of class
} //end of namespace
To package the component as dll there is slight change in usual compilation process. Its little
complicated process when compared to normal stand-alone program compilation.
108
csc /out:csAddComp1.dll /target:library csAddComp1.cs
Here the /out switch to put the compiled component in the relative subdirectory and file for
convenience. Likewise, we need the /target:library switch to actually create a DLL rather than
an executable with a .dll file extension.
In client program we will use a simple keyword called using <namespace> <namespace>. Which
will refer to the component.
Client Program
using System;
using CompCS;
class clAddComp1
{
public static void Main()
{
csAddComp1 addComp= new csAddComp1();
addComp.varI=10; //property set for varI
addComp.varJ=20; //property set for varJ
109