// LineItemsBean.java package server; import licommon.*; import java.sql.*; import java.util.*; import java.rmi.RemoteException; import java.io.Serializable; import javax.ejb.*; public class LineItemsBean implements EntityBean { private transient EntityContext ctx; public String ponumber; public String skunumber; public String count; public String getPONumber() throws RemoteException { return ponumber; } public void setPONumber(String number) throws RemoteException { this.ponumber = number; } public String getSKUNumber() throws RemoteException { return skunumber; } public void setSKUNumber(String number) throws RemoteException { this.skunumber = number; } public String getCount() throws RemoteException { return count; } public void setCount(String count) throws RemoteException { this.count = count; } public void setEntityContext(EntityContext ctx) { this.ctx = ctx; Properties props = ctx.getEnvironment(); } public void unsetEntityContext() { this.ctx = null; } public LineItemsPK ejbCreate(String pnumber, String snumber, String cou) throws CreateException, RemoteException { try { setPONumber(pnumber); setSKUNumber(snumber); setCount(cou); } catch (java.rmi.RemoteException e) { throw new CreateException(); } return null; } public LineItemsPK ejbFindByPrimaryKey(LineItemsPK pk) throws RemoteException, FinderException { return null; } public void ejbPostCreate(String pnumber, String snumber, String cou) throws CreateException { // get primarykey LineItemsPK pk = (LineItemsPK)ctx.getPrimaryKey(); } public void ejbLoad() { // You can get to the primary key LineItemsPK pk = (LineItemsPK)ctx.getPrimaryKey(); } public void ejbActivate() {} public void ejbPassivate() {} public void ejbRemove() {} public void ejbStore() {} } |
// LineItemsHome.java package licommon; import java.rmi.RemoteException; import javax.ejb.*; public interface LineItemsHome extends EJBHome { public LineItemsRemote findByPrimaryKey(LineItemsPK pk) throws RemoteException, FinderException; public LineItemsRemote findByWhere(String whereString) throws RemoteException, FinderException; public java.util.Enumeration findAllLineItems(String whereString) throws RemoteException, FinderException; public LineItemsRemote create(String pnumber, String snumber, String cou) throws RemoteException, CreateException; } |
// LineItemsRemote.java package licommon; import java.rmi.RemoteException; import javax.ejb.EJBObject; public interface LineItemsRemote extends EJBObject { public String getPONumber() throws RemoteException; public String getSKUNumber() throws RemoteException; public String getCount() throws RemoteException; public void setCount(String p) throws RemoteException; } |
//LineItemsPK.java package licommon; public class LineItemsPK implements java.io.Serializable { //purchaseorder number public String ponumber; //skunumber public String skunumber; //empty constructor public LineItemsPK ( ) { } public boolean equals(Object obj) { if ((obj instanceof LineItemsPK) && (((LineItemsPK)obj).ponumber == this.ponumber) && (((LineItemsPK)obj).skunumber == this.skunumber)) return true; return false; } public int hashCode() { return ((ponumber + skunumber).hashCode()); } } |
// Client.java package client; import licommon.*; import java.util.Hashtable; import java.util.Enumeration; import java.rmi.RemoteException; import javax.naming.InitialContext; import javax.naming.Context; import javax.naming.NamingException; import javax.ejb.RemoveException; import javax.ejb.CreateException; import javax.ejb.FinderException; import oracle.aurora.jndi.sess_iiop.ServiceCtx; public class Client { public static void main(String[] argv) { System.out.println("client is running"); try { if (argv.length != 4) { System.out.println("usage: Client user password GIOP_SERVICE ejbPubname"); System.exit(1); } String user = argv[0]; String password = argv[1]; String GIOP_SERVICE = argv[2]; String ejbPubname = argv[3]; Hashtable env = new Hashtable(); env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi"); env.put(Context.SECURITY_PRINCIPAL, user); env.put(Context.SECURITY_CREDENTIALS, password); env.put(Context.SECURITY_AUTHENTICATION, ServiceCtx.NON_SSL_LOGIN); Context ic = new InitialContext(env); LineItemsHome ch = (LineItemsHome) ic.lookup(GIOP_SERVICE + ejbPubname); Enumeration e = ch.findAllLineItems(""); while(e.hasMoreElements()) { LineItemsRemote items = (LineItemsRemote) e.nextElement(); System.out.println ("ponumber: " + items.getPONumber() + " skunumber: " + items.getSKUNumber() + " Count: " + items.getCount()); } } catch (RemoteException e) { System.out.println("RemoveException caught:" + e); e.printStackTrace(); } catch (NamingException e) { System.out.println("NamingException caught:" + e); e.printStackTrace(); } catch (FinderException e) { System.out.println("FinderException caught:" + e); e.printStackTrace(); } } } |
<?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.1//EN" "ejb-jar.dtd"> <ejb-jar> <enterprise-beans> <entity> <description>**LineItems Bean**</description> <ejb-name>LineItemsBean</ejb-name> <home>licommon.LineItemsHome</home> <remote>licommon.LineItemsRemote</remote> <ejb-class>server.LineItemsBean</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>licommon.LineItemsPK</prim-key-class> <reentrant>False</reentrant> <cmp-field><field-name>ponumber</field-name></cmp-field> <cmp-field><field-name>skunumber</field-name></cmp-field> <cmp-field><field-name>count</field-name></cmp-field> <resource-ref> <res-ref-name>DataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Application</res-auth> </resource-ref> </entity> </enterprise-beans> <assembly-descriptor> <security-role> <description>**LineItems Role**</description> <role-name>PUBLIC</role-name> </security-role> <method-permission> <description>**LineItems Permissions**</description> <role-name>PUBLIC</role-name> <method> <ejb-name>LineItemsBean</ejb-name> <method-name>*</method-name> </method> </method-permission> <container-transaction> <description>**LineItems Transaction**</description> <method> <ejb-name>LineItemsBean</ejb-name> <method-name>*</method-name> </method> <trans-attribute>RequiresNew</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> |
<?xml version="1.0"?> <!DOCTYPE oracle-ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.1//EN" "oracle-ejb-jar.dtd"> <oracle-ejb-jar> <oracle-descriptor> <mappings> <ejb-mapping> <ejb-name>LineItemsBean</ejb-name> <jndi-name>test/LineItemsBean</jndi-name> </ejb-mapping> <security-role-mapping> <security-role> <description>**LineItems Role**</description> <role-name>OraclePublicRole</role-name> </security-role> <oracle-role>PUBLIC</oracle-role> </security-role-mapping> <resource-ref-mapping> <res-ref-name>DataSource</res-ref-name> <jndi-name>test/DataSource/testds</jndi-name> </resource-ref-mapping> <transaction-manager> <default-enlist>True</default-enlist> </transaction-manager> </mappings> <persistence-provider> <description>**Persistence Provider**</description> <persistence-name>psi-ri</persistence-name> <persistence-deployer>oracle.aurora.ejb.persistence.ocmp.OcmpEntityDeployer</persistence-deployer> </persistence-provider> <persistence-descriptor> <description>**Persistence Descriptor**</description> <ejb-name>LineItemsBean</ejb-name> <persistence-name>psi-ri</persistence-name> <persistence-param>test param 1</persistence-param> <persistence-param>test param 2</persistence-param> <psi-ri> <schema>ICS</schema> <table>LINEITEMS</table> <attr-mapping> <field-name>ponumber</field-name> <column-name>PONUMBER</column-name> </attr-mapping> <attr-mapping> <field-name>skunumber</field-name> <column-name>SKUNUMBER</column-name> </attr-mapping> <attr-mapping> <field-name>count</field-name> <column-name>COUNT</column-name> </attr-mapping> </psi-ri> </persistence-descriptor> </oracle-descriptor> </oracle-ejb-jar> |
REM makeit.bat @echo off @if not "%ECHO%"=="" echo %ECHO% @setlocal & pushd & set RET= set ORACLE_HOME=C:\oracle\ora90 call %ORACLE_HOME%\javavm\demo\common.bat if not "%RET%"=="1" goto :DOSEXIT REM set classpath local to this script set MAKE_CLASSPATH=%JDK12_CLASSPATH% REM published JNDI name of remote object set EJB_PUBNAME=/test/SKUBean set PUBNAME=%EJB_PUBNAME% REM COMMON_CLASS javac -g -classpath %MAKE_CLASSPATH% licommon/*.java REM SERVER_CLASS javac -g -classpath %MAKE_CLASSPATH% server/*.java REM CLIENT_CLASS javac -g -classpath %MAKE_CLASSPATH% client/*.java REM server.jar jar cf server.jar server/*.class licommon/*.class REM client.jar jar cfM client.jar client/*.class REM deploy call deployejb -addclasspath %MAKE_CLASSPATH% -republish -temp temp -generated licommon.jar -u %USER%/%PASS% -s %GIOP_SERVICE% -descriptor LineItems.xml -oracledescriptor LineItemsMap.xml server.jar jar uf licommon.jar licommon/LineItemsPK.class :DOSEXIT @endlocal & popd & set RET=%RET% |
REM runit.bat @echo off @if not "%ECHO%"=="" echo %ECHO% @setlocal & pushd & set RET= set ORACLE_HOME=C:\oracle\ora90 call %ORACLE_HOME%\javavm\demo\common.bat if not "%RET%"=="1" goto :DOSEXIT REM set classpath local to this script set MAKE_CLASSPATH=%JDK12_CLASSPATH% REM published JNDI name of remote object set EJB_PUBNAME=/test/LineItemsBean set PUBNAME=%EJB_PUBNAME% REM run java -classpath "%MAKE_CLASSPATH:"=%;licommon.jar" client.Client %USER% %PASS% %GIOP_SERVICE% %PUBNAME% :DOSEXIT @endlocal & popd & set RET=%RET% |