当前位置: 首页 > news >正文

网站正在维护模板宁波seo排名外包公司

网站正在维护模板,宁波seo排名外包公司,如何做镜像网站,网站后台管理系统栏目位置ejb 示例 2018在本教程中#xff0c;我们将了解状态Java企业会话Bean中激活和钝化的工作方式。 1.简介 有状态会话Bean通常保存有关特定客户端的信息#xff0c;并在整个会话中保存该信息。 但是#xff0c;事实是#xff0c;客户端会话往往会在相当长的时间内保持活动状态… ejb 示例 2018 在本教程中我们将了解状态Java企业会话Bean中激活和钝化的工作方式。 1.简介 有状态会话Bean通常保存有关特定客户端的信息并在整个会话中保存该信息。 但是事实是客户端会话往往会在相当长的时间内保持活动状态当然许多客户端可以同时在线。 结果EJB容器必须实现一种机制该机制使得释放在给定时刻不使用的资源成为可能并且可以在需要时再次激活它。 钝化会话Bean意味着将其从容器的会话EJB缓存中删除并将会话Bean的所有必要信息和属性存储在文件中。 激活会话Bean意味着读取上述文件并在缓存中还原已钝化的会话Bean。 就像您想象的那样该会话bean的所有字段都必须可序列化 。 在这个示例中我们将创建一个EAR项目和一个EJB项目它们将托管我们的Session Bean以及一个动态Web应用程序它将托管Servlet并测试上述钝化和激活属性。 我们将使用Eclipse Java EE IDE 4,3 Kepler和Glassfish 4.0作为我们的容器。 2.创建一个新的企业应用程序项目 创建一个名为SatefulBeansEAR的新企业应用程序项目。在Eclipse IDE中选择File- SatefulBeansEAR Enterprise Application Project并填写表单然后单击Finish 3.创建一个新的EJB Projet 创建一个名为StatefulEJB的新EJB项目。 我们将基于此创建会话bean。 转到文件-新建- EJB项目并填写表单。 注意选择“ Add EAR Project”然后选择“ StatefulBeansEAR ”作为EAR项目名称 单击两次Next然后选择创建EJB Client JAR以及生成ejb-jar.xml部署描述符 4.创建一个令人满意的会话Bean 在Project Explorer中打开StatefulEJB Project并在ejbModule文件夹中创建一个名为com.javacodegeeks.enterprise.ejb的新源包。 在该程序包中创建一个新的Interface它将是EJB的本地视图 Passivation.java package com.javacodegeeks.enterprise.ejb;import javax.ejb.Local;import com.javacodegeeks.enterprise.ejb.property.PropertyObject;Local public interface Passivation {void setPropertyObject(PropertyObject propertyObject);PropertyObject getPropertyObject();} 这是会话Bean PassivationBean.java package com.javacodegeeks.enterprise.ejb;import javax.ejb.PostActivate; import javax.ejb.PrePassivate; import javax.ejb.Stateful;import com.javacodegeeks.enterprise.ejb.property.PropertyObject;Stateful public class PassivationBean implements Passivation {private PropertyObject myProperty;Overridepublic void setPropertyObject(PropertyObject propertyObject) {this.myProperty propertyObject;}Overridepublic PropertyObject getPropertyObject() {return this.myProperty;}PrePassivateprivate void prePassivate(){// Free resources // ...System.out.println(Passivating EJB. Property value: myProperty.getProperty());}PostActivateprivate void postActivate(){// Reactivate resources// ...System.out.println(Activating EJB. Property value: myProperty.getProperty());} } 在上面的代码中 private void prePassivate() 用PrePassivate注释是当EJB容器决定钝化该会话bean时要执行的方法。 private void postActivate()具有注释PostActivate 是EJB容器由于再次需要而激活钝化会话Bean时要执行的方法。 此外如您所见会话bean有一个private PropertyObject myProperty字段。 这个对象可以包含有关会话Bean资源以及任何有用的数据的信息。 因此当钝化bean时我们希望也必须保存和恢复此属性。 因此正如我们在简介中所提到的它必须是可Serilizable的。 话虽如此如果您不想存储此属性因为您不希望在激活Bean时检索该资源则可以使用Transient注解声明对象瞬态。 我为此对象创建了一个名为com.javacodegeeks.enterprise.ejb.property的新源程序包。 PropertyObject.java package com.javacodegeeks.enterprise.ejb.property;import java.io.Serializable;public class PropertyObject implements Serializable {private static final long serialVersionUID 1L;private String property;public PropertyObject(String value){this.property value;}public String getProperty() {return property;}} 因此这将是EJB项目SatefulEJB的最终结构 5.创建一个新的动态Web项目 转到文件-新建-动态Web项目。 填写表单并确保选中“将项目添加到EAR”然后将StatefulBeans EAR作为“ EAR项目名称” 单击“完成”后转到项目资源管理器然后右键单击项目StatefulBeansTest然后转到“属性”-“部署程序集”-“添加”-“项目”-“ StatefulEJB” 6.创建一个新的Servlet 转到StatefulBeansTest Web项目并创建一个名为MyServlet的新Servlet 因此这将是Web项目的最终结构 MyServlet.java package com.javacodegeeks.enterprise.servlet;import java.io.IOException;import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.javacodegeeks.enterprise.ejb.Passivation; import com.javacodegeeks.enterprise.ejb.property.PropertyObject;WebServlet(/MyServlet) public class MyServlet extends HttpServlet {private static final long serialVersionUID 1L;public MyServlet() {super();}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {System.out.println(Hello from Servlet);InitialContext ic;Passivation passivation;String beanCountparam request.getParameter(count);if (beanCountparam ! null) {int beanCount Integer.parseInt(beanCountparam);try {ic new InitialContext();for (int i 0; i beanCount; i) {passivation (Passivation) ic.lookup(java:global/StatefulBeansEAR/StatefulEJB/PassivationBean! com.javacodegeeks.enterprise.ejb.Passivation);passivation.setPropertyObject(new PropertyObject(bean i));request.getSession().setAttribute(bean i,passivation);}} catch (Exception e) {throw new ServletException(e);}}String beanActivationIndex request.getParameter(activate);if (beanActivationIndex ! null) {try {ic new InitialContext();passivation (Passivation) request.getSession().getAttribute(bean beanActivationIndex);System.out.println(TestObject property value: passivation.getPropertyObject().getProperty());} catch (Exception e) {throw new ServletException(e);}}}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {}} 在上面的代码中访问Servlet时它将解析count查询参数生成count会话bean并将其存储到请求会话中。 因此如果存在activate查询参数则从会话中检索相应的bean。 提示 如果您在找出EJB PassivationObject的可移植JNDI名称时遇到麻烦请在部署项目时查看Glassfish的日志或输出您会发现类似以下内容的行 2013-12-13T182228.598 0200 | INFO EJB5181EJB PassivationObject的便携式JNDI名称javaglobal / StatefulBeans / StatefulEJB / PassivationObjectjavaglobal / StatefulBeans / StatefulEJB / PassivationObjectcom.javacodegeeks.enterprise.ejb.Passivation 7.测试 创建上述项目后您必须在Glassfish上运行StatefulBeansTest 。 为了测试所需的行为我们必须以某种方式触发特定会话bean的钝化和激活。 要强制钝化Session Bean我们必须使容器从会话缓存中将其删除。 默认情况下Glassfish最多可以承载512个会话bean。 因此如果我们触发请求创建600个bean的请求那么其中的一些bean最终将从缓存中删除。 该请求可以是 http://localhost:8080/StatefulBeansTest/MyServlet?count600 控制台中的输出将是 2013-12-30T22:29:36.9780200|INFO: Hello from Servlet 2013-12-30T22:29:37.3150200|INFO: Passivating EJB. Property value: bean31 2013-12-30T22:29:37.3290200|INFO: Passivating EJB. Property value: bean64 2013-12-30T22:29:37.3320200|INFO: Passivating EJB. Property value: bean70 2013-12-30T22:29:37.3450200|INFO: Passivating EJB. Property value: bean98 2013-12-30T22:29:37.3900200|INFO: Passivating EJB. Property value: bean117 2013-12-30T22:29:37.3900200|INFO: Passivating EJB. Property value: bean116 2013-12-30T22:29:37.3900200|INFO: Passivating EJB. Property value: bean115 2013-12-30T22:29:37.3940200|INFO: Passivating EJB. Property value: bean114 2013-12-30T22:29:37.3940200|INFO: Passivating EJB. Property value: bean113 2013-12-30T22:29:37.3940200|INFO: Passivating EJB. Property value: bean112 2013-12-30T22:29:37.3970200|INFO: Passivating EJB. Property value: bean111 2013-12-30T22:29:37.3980200|INFO: Passivating EJB. Property value: bean110 2013-12-30T22:29:37.3990200|INFO: Passivating EJB. Property value: bean109 2013-12-30T22:29:37.4020200|INFO: Passivating EJB. Property value: bean108 2013-12-30T22:29:37.4030200|INFO: Passivating EJB. Property value: bean107 . . . 因此您可以看到一些Bean已从缓存中删除并因此被钝化。 现在触发bean的激活我们可以简单地请求检索已被钝化的bean例如bean31 。 该请求可以是 http://localhost:8080/StatefulBeansTest/MyServlet?activate31 控制台中的输出将是 2013-12-30T22:33:48.7420200|INFO: Hello from Servlet 2013-12-30T22:33:48.7440200|INFO: Activating EJB. Property value: bean31 2013-12-30T22:33:48.7450200|INFO: TestObject property value: bean31 而已。 现在可以确信我们实际上已将会话bean序列化到了光盘您可以转到Glassfish_installation_folder/glassfish4/glassfish/domains/domain1/session-store 在其中您可以实际看到保存bean的文件夹 下载Eclipse项目 这是有关EJB钝化和激活的示例。 下载本教程的Eclipse项目 EJBPassivationActivation.zip 翻译自: https://www.javacodegeeks.com/2013/08/ejb-passivation-and-activation-example.htmlejb 示例 2018
http://www.pierceye.com/news/493559/

相关文章:

  • 无锡企业网站制作报价公司做网站需要哪些手续
  • 最好的营销型网站保险购买平台有哪些
  • 网站建设实训的目的网站开发的框架协议
  • 本地郑州网站建设搭建一个网站
  • 如何做网站竞品分析哪个网站可以接任务做兼职
  • 佛山网站关键词网站建设需求分析文档
  • 网站收录地址旅游网站建设的相关报价
  • seo月薪seo优化方法网站快速排名推广渠道
  • 企业网站设计理念如何seo网站
  • 河南移动商城网站建设怎么创建平台卖自己的产品
  • 网上做网站钱被骗了报案有用吗文章自定义wordpress
  • 网站设置成灰色市场监督管理局是什么单位
  • 北京国贸网站建设wordpress需要付费才能看某些页面
  • 郸城网站建设wordpress教程cms
  • 做本地网站赚钱吗?php网站制作过程中遇到的问题及解决办法
  • 上海网站快速排名提升ui是网站建设吗
  • 中信建设有限责任公司洪波seo外链工具
  • 网站服务器和空间有什么区别网站制作的公司哪家效果好
  • 做网站具体收费梅州南站
  • 淘宝禁止了网站建设类wordpress极速优化
  • 山东app网站制作网站建设优化广告流量
  • 做阿里云网站浏览器编程语言
  • 青岛市网站制作企业邮箱密码忘了怎么重置密码
  • 文交所网站开发和业务多一样的平台
  • 如何免费自己做网站wordpress成品图
  • thinkphp做中英文网站电子商务网站建设的步骤一般为
  • 网站编程 mysql小说关键词搜索器
  • 农业网站开发企业名录搜索软件免费
  • 临沂医院手机网站建设上饶专业做网站建设
  • 超酷html5效果的工作室网站程序宝洁网站建设