I don't know why, but I actually saved a copy of the orion primer last time
I was there :-)
I have packaged it in a zip file (for WinNT) along with all the source and
build files, and it is available for download at
http://www.exense.com/sw/orion-primer/orion-primer.zip
Runar.
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Darren Gibbons
Sent: 24. august 2000 04:00
To: Orion-Interest
Subject: RE: How to: Creating and Deploying Entity Beans using cmp
It would appear that the orion primer is no longer available. Does know if
the site has moved, or if anyone has a backup copy of this page?
Darren.
--
Darren Gibbons [EMAIL PROTECTED]
OpenRoad Communications ph: 604.681.0516
Internet Application Development fax: 604.681.0916
Vancouver, B.C. http://www.openroad.ca
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Rick Bergami
> Sent: August 23, 2000 2:33 PM
> To: Orion-Interest
> Subject: How to: Creating and Deploying Entity Beans using cmp
>
>
> This is a very simple example and I'm sure can use alot of work:
>
> Deploying Entity Beans:
>
> First I would follow the orion primer located at
> http://www.zdnerd.demon.nl/orion-primer and set up a session bean. Most
> of the instructions following assume you have this application setup
> with the same directory structure. We going to create a bean with 1
> field: long id (primary key) .
>
> 1) Create your bean (using the ejbmaker tool in the orion directory will
> do most of the work for you. Use java -jar orion.jar in the orion
> directory to start it). Let's call them TestEnt (Remote interface),
> TestEntEJB (Bean), TestEntHome (Home interface), TestEntPK (Primary
> key). The source files should be in your
> \orion-primer\src\java\hello\ejb\ (assuming they are in a package
> hello.ejb.) directory following the orion-primer tutorial. We will make
> a servlet called TestEntServlet in \orion-primer\src\java\hello\web\
> (assuming they are in a package hello.web.) to create the TestEnt
> instance.
>
> Below is the source code for all five classes:
>
> TestEnt.class (remote interface):
>
> import java.rmi.RemoteException;
> import javax.ejb.*;
>
> public interface TestEnt extends EJBObject
> {
> public long getId() throws RemoteException;
> }
>
> TestEntBean.class (Bean):
>
> package hello.ejb;
>
> import java.rmi.*;
> import javax.ejb.*;
>
> public class TestEntBean implements EntityBean {
> private EntityContext entityContext;
> public long id;
>
>
> public void ejbActivate() throws RemoteException {
> }
>
> public void ejbLoad() throws RemoteException {
> }
>
> public void ejbPassivate() throws RemoteException {
> }
>
> public void ejbRemove() throws RemoteException, RemoveException {
> }
>
> public void ejbStore() throws RemoteException {
> }
>
> public void setEntityContext(EntityContext context) throws
> RemoteException {
> entityContext = context;
> }
>
> public void unsetEntityContext() throws RemoteException {
> entityContext = null;
> }
>
> public TestEntPK ejbCreate(long id) throws CreateException {
> this.id = id;
> return null; // Return null when using CMP
> }
>
> public void ejbPostCreate(long id) {
> }
>
> public void setId(long newId) {
> id = newId;
> }
>
> public long getId() {
> return id;
> }
> }
>
>
> TestEntHome.class (Home interface):
>
> import javax.ejb.*;
> import java.rmi.RemoteException;
>
> public interface TestEntHome extends EJBHome
> {
> public TestEnt create(long id) throws CreateException, RemoteException;
>
> public TestEnt findByPrimaryKey(long key) throws RemoteException,
> FinderException;
> }
>
> TestEntPK.class (Primary Key):
>
> package hello.ejb;
>
> public class TestEntPK {
>
> public TestEntPK() {
> }
>
> public long id;
> }
>
> TestEntServlet.class (Servlet):
>
> package hello.web;
>
> import java.io.IOException;
> import java.util.Date;
> import java.util.Properties;
> import javax.naming.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> import javax.rmi.PortableRemoteObject;
> import hello.ejb.TestEnt;
> import hello.ejb.TestEntHome;
>
> public class TestEntServlet extends HttpServlet {
>
> // constructor
> public TestEntServlet() {
> super();
> trace("<init>");
> }
>
> // A reference to the remote `Hello' object
> protected TestEnt _testEnt;
>
> // Initializes this servlet
> public void init(ServletConfig config) throws ServletException {
> super.init(config);
> trace("init");
>
>
> }
>
> // Handles the HTTP GET request
> public void doGet(HttpServletRequest request, HttpServletResponse
> response)
> throws ServletException, IOException {
> trace("doGet");
>
> // Get the initial JNDI context using our settings
> Context context;
> try {
> context = new InitialContext();
> }
> catch (Throwable exception) {
> throw new ServletException(
> "Unable to get initial JNDI context: " +
> exception.toString());
> }
>
> // Get a reference to the TestEnt home interface
> TestEntHome testEntHome;
> try {
> Object boundObject =
> context.lookup("java:comp/env/ejb/TestEntHome");
> testEntHome = (TestEntHome)
> PortableRemoteObject.narrow(boundObject,TestEntHome.class);
> }
> catch (Throwable exception) {
> exception.printStackTrace();
> throw new ServletException(
> "Unable to get home interface here: " +
> exception.toString());
> }
>
> ServletOutputStream out = response.getOutputStream();
>
> response.setContentType("text/html");
>
> // Get a reference to a TestEnt instance
> System.out.println("about to create TestEnt bean");
> try {
> _testEnt =
> testEntHome.create(Long.parseLong(request.getParameter("ID")));
> System.out.println("created testEnt bean");
> out.println("<HTML><BODY bgcolor=\"#FFFFFF\">");
> out.println("Time stamp: " + new Date().toString());
> out.println("<BR>Created bean (row) with the id of: " +
> request.getParameter("ID"));
> out.println("</BODY>");
> out.println("</HTML>");
> }
> catch (Throwable exception) {
> throw new ServletException(
> "Unable to create TestEnt instance: " +
> exception.toString());
> }
>
>
>
>
>
>
> }
>
> // Displays a trace message to System.out
> private void trace(String methodName) {
> System.out.print(methodName);
> System.out.println("() called");
> }
>
> }
>
>
>
> 2) Modify your \orion-primer\src\xml\ejb\ejb-jar.xml to look like the
> following:
>
> <?xml version="1.0"?>
> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise
> JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
> <ejb-jar>
> <enterprise-beans>
> <entity>
> <ejb-name>hello.ejb.TestEnt</ejb-name>
> <home>hello.ejb.TestEntHome</home>
> <remote>hello.ejb.TestEnt</remote>
> <ejb-class>hello.ejb.TestEntBean</ejb-class>
> <persistence-type>Container</persistence-type>
> <prim-key-class>hello.ejb.TestEntPK</prim-key-class>
> <reentrant>False</reentrant>
> <cmp-field>
> <field-name>id</field-name>
> </cmp-field>
> </entity>
> <session>
> <description></description>
> <display-name>hello.ejb.Hello</display-name>
> <ejb-name>hello.ejb.Hello</ejb-name>
> <home>hello.ejb.HelloHome</home>
> <remote>hello.ejb.Hello</remote>
> <ejb-class>hello.ejb.HelloBean</ejb-class>
> <session-type>Stateless</session-type>
> </session>
> </enterprise-beans>
> <assembly-descriptor>
> <container-transaction>
> <method>
> <ejb-name>TestEntBean</ejb-name>
> <method-name>*</method-name>
> </method>
> <trans-attribute>Required</trans-attribute>
> </container-transaction>
> <security-role>
> <description>Users</description>
> <role-name>users</role-name>
> </security-role>
> <method-permission>
> <description>Restricted</description>
> <role-name>users</role-name>
> <method>
> <ejb-name>hello.Hello</ejb-name>
> <method-name>*</method-name>
> </method>
> </method-permission>
> </assembly-descriptor>
>
> </ejb-jar>
>
>
> 3) Modify your \orion-primer\src\xml\web\web.xml to look like the
> following:
>
> <?xml version="1.0"?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
> 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
>
> <web-app>
> <display-name>Orion Primer Web Application</display-name>
> <servlet>
> <servlet-name>hello.web.HelloServlet</servlet-name>
> <description>Servlet that calls the Hello bean</description>
> <servlet-class>hello.web.HelloServlet</servlet-class>
> </servlet>
> <servlet>
> <servlet-name>hello.web.TestEntServlet</servlet-name>
> <description>Servlet that calls the Test bean</description>
> <servlet-class>hello.web.TestEntServlet</servlet-class>
> </servlet>
>
>
> <ejb-ref>
> <ejb-ref-name>ejb/HelloHome</ejb-ref-name>
> <ejb-ref-type>Session</ejb-ref-type>
> <home>hello.ejb.HelloHome</home>
> <remote>hello.ejb.Hello</remote>
> </ejb-ref>
> <ejb-ref>
> <ejb-ref-name>ejb/TestEntHome</ejb-ref-name>
> <ejb-ref-type>Entity</ejb-ref-type>
> <home>hello.ejb.TestEntHome</home>
> <remote>hello.ejb.TestEnt</remote>
> </ejb-ref>
>
>
> <servlet-mapping>
> <servlet-name>hello.web.HelloServlet</servlet-name>
> <url-pattern>/</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>hello.web.TestEntServlet</servlet-name>
> <url-pattern>/</url-pattern>
> </servlet-mapping>
> </web-app>
>
> 4) Run ant from the orion-primer directory.
> 5) Start up orion server from the \orion\ directory (java -jar
> orion.jar). This should deploy the application and create a directory
> directory/file
> \orion\application-deployments\orion-primer\orion-primer-ejb.jar\o
> rion-ejb-jar.xml.
> This is the file you modify to map the bean to the database. It should
> look like:
>
> <?xml version="1.0"?>
> <!DOCTYPE orion-ejb-jar PUBLIC "-//Evermind//DTD Enterprise JavaBeans
> 1.1 runtime//EN" "http://www.orionserver.com/dtds/orion-ejb-jar.dtd">
>
> <orion-ejb-jar deployment-version="1.0.3" deployment-time="e1298911c3">
> <enterprise-beans>
> <entity-deployment name="hello.ejb.TestEnt"
> location="hello.ejb.TestEnt" wrapper="EntityHomeWrapper1"
> table="TestEnt" data-source="jdbc/DefaultEJBDS">
> <primkey-mapping>
> <cmp-field-mapping>
> <fields>
> <cmp-field-mapping name="id" persistence-name="id" />
> </fields>
> </cmp-field-mapping>
> </primkey-mapping>
> </entity-deployment>
> <session-deployment name="hello.ejb.Hello" location="hello.ejb.Hello"
> wrapper="SessionHomeWrapper3" timeout="1200"
> persistence-filename="hello.ejb.Hello" />
> </enterprise-beans>
> <assembly-descriptor>
> <security-role-mapping name="users">
> </security-role-mapping>
> <default-method-access>
> <security-role-mapping impliesAll="true" />
> </default-method-access>
> </assembly-descriptor>
> </orion-ejb-jar>
>
> 6) In your browser type: http://localhost/servlet/TestEntServlet?ID=1.
> This should create a row in the TestEnt table (specified in the xml file
> above) with an id of 1.
>
>
>
>