// SKUBean.java package server; import skucommon.*; import java.sql.*; import java.util.*; import java.rmi.RemoteException; import java.io.Serializable; import javax.ejb.*; public class SKUBean implements EntityBean { private transient EntityContext ctx; public String skunumber; public String description; public String price; public String getSKUNumber() throws RemoteException { return skunumber; } public void setSKUNumber(String number) throws RemoteException { this.skunumber = number; } public String getDescription() throws RemoteException { return description; } public void setDescription(String description) throws RemoteException { this.description = description; } public String getPrice() throws RemoteException { return price; } public void setPrice(String price) throws RemoteException { this.price = price; } public void setEntityContext(EntityContext ctx) { this.ctx = ctx; Properties props = ctx.getEnvironment(); } public void unsetEntityContext() { this.ctx = null; } public String ejbCreate(String number, String desc, String p) throws CreateException, RemoteException { try { setSKUNumber(number); setDescription(desc); setPrice(p); } catch (java.rmi.RemoteException e) { throw new CreateException(); } return null; } public String ejbFindByPrimaryKey(String pk) throws RemoteException, FinderException { return null; } public void ejbPostCreate(String number, String desc, String p) throws CreateException { // get primarykey String pk = (String)ctx.getPrimaryKey(); } public void ejbLoad() { // You can get to the primary key String pk = (String)ctx.getPrimaryKey(); } public void ejbActivate() {} public void ejbPassivate() {} public void ejbRemove() {} public void ejbStore() {} } |
// SKUHome.java package skucommon; import java.rmi.RemoteException; import javax.ejb.*; public interface SKUHome extends EJBHome { public SKURemote findByPrimaryKey(String pk) throws RemoteException, FinderException; public SKURemote findByWhere(String whereString) throws RemoteException, FinderException; public java.util.Enumeration findAllSkus(String whereString) throws RemoteException, FinderException; public SKURemote create(String number, String desc, String p) throws RemoteException, CreateException; } |
// SKURemote.java package skucommon; import java.rmi.RemoteException; import javax.ejb.EJBObject; public interface SKURemote extends EJBObject { public String getSKUNumber() throws RemoteException; public String getDescription() throws RemoteException; public void setDescription(String description) throws RemoteException; public String getPrice() throws RemoteException; public void setPrice(String p) throws RemoteException; } |
// Client.java package client; import skucommon.*; 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); SKUHome ch = (SKUHome) ic.lookup(GIOP_SERVICE + ejbPubname); Enumeration e = ch.findAllSkus(""); while(e.hasMoreElements()) { SKURemote sku = (SKURemote) e.nextElement(); System.out.println (" skunumber: " + sku.getSKUNumber() + " Price: " + sku.getPrice() + " Description: " + sku.getDescription()); } } 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>**SKU Bean**</description> <ejb-name>SKUBean</ejb-name> <home>skucommon.SKUHome</home> <remote>skucommon.SKURemote</remote> <ejb-class>server.SKUBean</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.String</prim-key-class> <reentrant>False</reentrant> <cmp-field><field-name>skunumber</field-name></cmp-field> <cmp-field><field-name>description</field-name></cmp-field> <cmp-field><field-name>price</field-name></cmp-field> <primkey-field>skunumber</primkey-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>**SKU Role**</description> <role-name>PUBLIC</role-name> </security-role> <method-permission> <description>**SKU Permissions**</description> <role-name>PUBLIC</role-name> <method> <ejb-name>SKUBean</ejb-name> <method-name>*</method-name> </method> </method-permission> <container-transaction> <description>**SKU Transaction**</description> <method> <ejb-name>SKUBean</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>SKUBean</ejb-name> <jndi-name>test/SKUBean</jndi-name> </ejb-mapping> <security-role-mapping> <security-role> <description>**SKU 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>SKUBean</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>SKUS</table> <attr-mapping> <field-name>skunumber</field-name> <column-name>SKUNUMBER</column-name> </attr-mapping> <attr-mapping> <field-name>description</field-name> <column-name>DESCRIPTION</column-name> </attr-mapping> <attr-mapping> <field-name>price</field-name> <column-name>PRICE</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% skucommon/*.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 skucommon/*.class REM client.jar jar cfM client.jar client/*.class REM deploy call deployejb -addclasspath %MAKE_CLASSPATH% -republish -temp temp -generated skucommon.jar -u %USER%/%PASS% -s %GIOP_SERVICE% -descriptor SKU.xml -oracledescriptor SKUMap.xml server.jar :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/SKUBean set PUBNAME=%EJB_PUBNAME% REM run java -classpath "%MAKE_CLASSPATH:"=%;skucommon.jar" client.Client %USER% %PASS% %GIOP_SERVICE% %PUBNAME% :DOSEXIT @endlocal & popd & set RET=%RET% |