⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 session5.html

📁 j2eePDF格式的电子书
💻 HTML
📖 第 1 页 / 共 3 页
字号:
</p><a name="wp80562"> </a><p class="pBody"><code class="cCode">TimerSessionEJB</code> is a stateless session bean that shows how to set a timer. The implementation class for <code class="cCode">TimerSessionEJB</code> is called <code class="cCode">TimerSessionBean</code>. In the source code listing of <code class="cCode">TimerSessionBean</code> that follows, note the <code class="cCode">myCreateTimer</code> and <code class="cCode">ejbTimeout</code> methods. Because it's a business method, <code class="cCode">myCreateTimer</code> is defined in the bean's remote interface (<code class="cCode">TimerSession</code>) and may be invoked by the client. In this example, the client invokes <code class="cCode">myCreateTimer</code> with an interval duration of 30000 milliseconds. The <code class="cCode">myCreateTimer</code> method fetches a <code class="cCode">TimerService</code> object from the bean's <code class="cCode">SessionContext</code>. Then it creates a new timer by invoking the <code class="cCode">createTimer</code> method of <code class="cCode">TimerService</code>. Now that the timer is set, the EJB container will invoke the <code class="cCode">ejbTimer</code> method of <code class="cCode">TimerSessionBean</code> when the timer expires--in about 30 seconds. Here's the source code for the <code class="cCode">TimerSessionBean</code> class:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">import javax.ejb.*;public class TimerSessionBean implements SessionBean,    TimedObject {    private SessionContext context;    public TimerHandle myCreateTimer(long intervalDuration) {        System.out.println            (&quot;TimerSessionBean: start createTimer &quot;);        TimerService timerService =             context.getTimerService();        Timer timer =             timerService.createTimer(intervalDuration,             &quot;created timer&quot;);}    public void ejbTimeout(Timer timer) {          System.out.println(&quot;TimerSessionBean: ejbTimeout &quot;);    }    public void setSessionContext(SessionContext sc) {        System.out.println(&quot;TimerSessionBean:            setSessionContext&quot;);        context = sc;     }     public void ejbCreate() {        System.out.println(&quot;TimerSessionBean: ejbCreate&quot;);     }     public TimerSessionBean() {}     public void ejbRemove() {}     public void ejbActivate() {}     public void ejbPassivate() {}} <a name="wp80563"> </a></pre></div><hr><a name="wp80940"> </a><p class="pNote">Note: To run the <code class="cCode">TimerSessionEJB</code> example, you must start the PointBase server before you start the J2EE application server. If you don&#39;t start the PointBase server, or if you start it after the J2EE application server, then you will get a <code class="cCode">java.rmi.RemoteException</code> with the message, <code class="cCode">EJB Timer service not available</code>.</p><hr><a name="wp80565"> </a><h3 class="pHeading2">Building TimerSessionEJB</h3><a name="wp80566"> </a><p class="pBody">In a terminal window, go to the<code class="cCode"> </code><code class="cVariable">&lt;INSTALL&gt;</code><code class="cCode">/j2eetutorial14/examples/ejb/timersession/</code> directory. To build <code class="cCode">TimerSessionEJB</code>, type the following command:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">asant build<a name="wp80567"> </a></pre></div><a name="wp80568"> </a><p class="pBody">Use <code class="cCode">deploytool</code> to package and deploy this example.</p><a name="wp80569"> </a><h4 class="pHeading3">Creating the Application</h4><a name="wp80570"> </a><p class="pBody">In this section, you'll create a J2EE application named <code class="cCode">TimerSessionApp</code>, storing it in the file <code class="cCode">TimerSessionApp.ear</code>. </p><div class="pSmartList1"><ol type="1" class="pSmartList1"><a name="wp80571"> </a><div class="pSmartList1"><li>In <code class="cCode">deploytool</code>, select File<span style="font-family: Symbol"><img src="images/arrwrite.gif" border="0" alt="Right Arrow"></span>New<span style="font-family: Symbol"><img src="images/arrwrite.gif" border="0" alt="Right Arrow"></span>Application EAR.</li></div><a name="wp80572"> </a><div class="pSmartList1"><li>Click Browse.</li></div><a name="wp80573"> </a><div class="pSmartList1"><li>In the file chooser, navigate to <code class="cVariable">&lt;INSTALL&gt;</code><code class="cCode">/j2eetutorial14/examples/ejb/timersession/</code>. </li></div><a name="wp80574"> </a><div class="pSmartList1"><li>In the File Name field, enter <code class="cCode">TimerSessionApp.ear</code>.</li></div><a name="wp80575"> </a><div class="pSmartList1"><li>Click New Application.</li></div><a name="wp80576"> </a><div class="pSmartList1"><li>Click OK.</li></div><a name="wp80577"> </a><div class="pSmartList1"><li>Verify that the <code class="cCode">TimerSessonApp.ear</code> file resides in <code class="cCode">&lt;</code><code class="cVariable">INSTALL</code><code class="cCode">&gt;/j2eetutorial14/examples/ejb/timersession/.</code></li></div></ol></div><a name="wp80578"> </a><h4 class="pHeading3">Packaging the Enterprise Bean</h4><a name="wp80579"> </a><p class="pBody">Start the Edit Enterprise Bean wizard by selecting File<span style="font-family: Symbol"><img src="images/arrwrite.gif" border="0" alt="Right Arrow"></span>New<span style="font-family: Symbol"><img src="images/arrwrite.gif" border="0" alt="Right Arrow"></span>Enterprise JavaBean JAR. The wizard displays the following dialog boxes.</p><div class="pSmartList1"><ol type="1" class="pSmartList1"><a name="wp80580"> </a><div class="pSmartList1"><li>In the Introduction dialog box:</li></div><div class="pSmartList2"><ol type="a" class="pSmartList2"><a name="wp80581"> </a><div class="pSmartList2"><li>Read the explanatory text for an overview of the wizard's features.</li></div><a name="wp80582"> </a><div class="pSmartList2"><li>Click Next.</li></div></ol></div><a name="wp80583"> </a><div class="pSmartList1"><li>In the EJB JAR dialog box:</li></div><div class="pSmartList2"><ol type="a" class="pSmartList2"><a name="wp80584"> </a><div class="pSmartList2"><li>Select the button labelled Create New JAR Module in Application.</li></div><a name="wp80585"> </a><div class="pSmartList2"><li>In the combo box below this button, select <code class="cCode">TimerSessionApp</code>.</li></div><a name="wp80586"> </a><div class="pSmartList2"><li>In the JAR Display Name field, enter <code class="cCode">TimerSessionJAR</code>.</li></div><a name="wp80587"> </a><div class="pSmartList2"><li>Click Edit.</li></div><a name="wp80588"> </a><div class="pSmartList2"><li>In the tree under Available Files, locate the <code class="cCode">&lt;</code><code class="cVariable">INSTALL</code><code class="cCode">&gt;/j2eetutorial14/examples/ejb/timersession/build/</code> directory.</li></div><a name="wp80589"> </a><div class="pSmartList2"><li>Select these classes: <code class="cCode">TimerSession.class</code>, <code class="cCode">TimerSessionBean.class</code>, and <code class="cCode">TimerSessionHome.class</code>.</li></div><a name="wp80590"> </a><div class="pSmartList2"><li>Click Add.</li></div><a name="wp80591"> </a><div class="pSmartList2"><li>Click OK.</li></div><a name="wp80592"> </a><div class="pSmartList2"><li>Click Next.</li></div></ol></div><a name="wp80593"> </a><div class="pSmartList1"><li>General dialog box</li></div><div class="pSmartList2"><ol type="a" class="pSmartList2"><a name="wp80890"> </a><div class="pSmartList2"><li>In the Enterprise Bean Class combo box, select <code class="cCode">TimerSessionBean</code>.</li></div><a name="wp80902"> </a><div class="pSmartList2"><li>In the Enterprise Bean Name field, enter <code class="cCode">TimerSessionEJB</code>.</li></div><a name="wp80878"> </a><div class="pSmartList2"><li>Under Bean Type, select the Stateless Session.</li></div><a name="wp80598"> </a><div class="pSmartList2"><li>In the Remote Interfaces section, select <code class="cCode">TimerSessionHome</code> for the Remote Home Interface and <code class="cCode">TimerSession</code> for the Remote Interface.</li></div><a name="wp80909"> </a><div class="pSmartList2"><li>Click Next.</li></div></ol></div><a name="wp80599"> </a><div class="pSmartList1"><li>In the Configure Options dialog box:</li></div><div class="pSmartList2"><ol type="a" class="pSmartList2"><a name="wp80600"> </a><div class="pSmartList2"><li>Select No for Expose Bean as Web Service Endpoint.</li></div><a name="wp80601"> </a><div class="pSmartList2"><li>Click Next.</li></div></ol></div><a name="wp80602"> </a><div class="pSmartList1"><li>Click Finish.</li></div></ol></div><a name="wp80605"> </a><h4 class="pHeading3">Compiling the Application Client</h4><a name="wp80606"> </a><p class="pBody">The application client files are compiled at the same time as the enterprise bean files.</p><a name="wp80607"> </a><h4 class="pHeading3">Packaging the Application Client</h4><a name="wp80608"> </a><p class="pBody">To package an application client component, you run the New Application Client wizard of the <code class="cCode">deploytool</code>. During this process the wizard performs the following tasks.</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp80609"> </a><div class="pSmartList1"><li>Creates the application client's deployment descriptor</li></div><a name="wp80610"> </a><div class="pSmartList1"><li>Puts the deployment descriptor and client files into a JAR file</li></div><a name="wp80611"> </a><div class="pSmartList1"><li>Adds the JAR file to the application's <code class="cCode">TimerSessionApp.ear</code> file</li></div></ul></div><a name="wp80612"> </a><p class="pBody">To start the New Application Client wizard, select File<span style="font-family: Symbol"><img src="images/arrwrite.gif" border="0" alt="Right Arrow"></span>New<span style="font-family: Symbol"><img src="images/arrwrite.gif" border="0" alt="Right Arrow"></span>Application Client JAR. The wizard displays the following dialog boxes.</p><div class="pSmartList1"><ol type="1" class="pSmartList1"><a name="wp80613"> </a><div class="pSmartList1"><li>Introduction dialog box </li></div><div class="pSmartList2"><ol type="a" class="pSmartList2">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -