建立你的第一个无状态会话Bean--HelloWorld之一

EJB学习二 我的第一个EJB项目(Eclipse下的EJB开发,与JBoss集成,Ant打包) EJB项目的创建(使用开发工具eclipse) 1、打开eclipse,新建一个普通的Java Project(实际开发使用的是java Project而不是ejb的) 2、点击Next,添加外部的jar包 3、为了方便,可以将jboss-5.1\cliient下的所有jar包全部导入(入门...将就一下...) 4、点击finish完成 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

企业JavaBeansTM学习指南:
建立你的第一个无状态(stateless)会话Bean -HelloWorld



1. 关于本学习指南



本学习指南的目的是要说明, 使用企业JavaBeans 组件模型来建立服务器端Java组件是非常简单的工作。 事实上, 易于使用、易于编程是问题关键所在。本学习指南为你提供了建立和使用企业JavaBeans应用程序的具体示例和指导, 旨在加深你对 Enterprise JavaBeans Specification (企业JavaBeans规范)以及企业JavaBeans 模型的理解。

本指南将为你示范如何在企业 JavaBeans容器(企业JavaBeans container)编写、以及安装或配置企业JavaBeans。注意: 在企业 JavaBeans 所使用的术语中, 安装过程被称作配置。 Enterprise JavaBeans Container (企业JavaBeans容器)是由企业 JavaBeans 服务器厂商提供的, 因此程序员对此不必给予过多关注。

按照以下的八个步骤并通览所有示例, 你将熟悉企业 JavaBeans 模型的基本构成, 并能创建"Hello World" 程序的企业 JavaBeans版本。

为学好本教程, 需要熟悉基本的企业JavaBeans 编程模型。对企业JavaBeans 不熟悉的程序员应参考 Java Tutorial(Java学习指南)、白皮书 Enterprise JavaBeans Technology(企业JavaBeans技术)。

2. 关于示例



本学习指南介绍了一个完整的无状态会话的企业JavaBean,给出了所有组件的源代码。 在功能上与长期使用的 "Hello World" 程序是对等的。这是所有企业beans 中最便于编写的, 它用最小的复杂度演示了企业 JavaBeans 模型。

示例的创建前提是假定可以访问BEA Weblogic Tengah Enterprise JavaBeans 服务器, 这主要是由于使用该服务器的评测版本较便利,而且可以从Web上下载(见步骤1中有关 BEA Weblogic Tengah 的下载和安装介绍)。该bean的代码应该能够在任何与企业 JavaBeans兼容的容器或服务器上运行,可能需要的一些改动仅是配置过程或客户端代码。下图描述了DemoBean示例的体系结构和它的客户端程序。
DemoBean
建立你的第一个无状态会话Bean--HelloWorld之一 建立你的第一个无状态会话Bean--HelloWorld之二 建立你的第一个无状态会话Bean--HelloWorld之三
关于有状态和无状态会话bean的解释 NULL 博文链接:https://caizhongda.iteye.com/blog/341007 立即下载

相关推荐

EJB3开发第一个无状态会话bean

NULL 博文链接:https://diaochenlong2.iteye.com/blog/1846828

WEB中有状态和无状态会话的区别

有状态和无状态会话的区别 1 无状态 (Stateless) 在不同方法调用间不保留任何状态 。 事务处理必须在一个方法中结束 。 通常资源占用较少;可以被共享(因为它是无状态的) 。 无状态不会"专门"保存客户端的状态----(需要强调“专门”是因为无状态会话Bean也会有成员变量,有成员变量就可以保存状...

607

告别代码丢失!用Git+Gitee管理你的Keil5单片机项目(保姆级图文教程)

本文详细介绍了如何利用Git和Gitee高效管理Keil5单片机项目,解决嵌入式开发中的代码丢失问题。通过精准配置.gitignore文件、设计适合团队的协作流程以及搭建安全备份体系,开发者可以轻松实现版本控制,提升工作效率。特别针对Keil工程的特殊文件类型,提供了实用的过滤规则和操作技巧。

weixin_33686714的博客 472

Redis-Session无状态会话技术

有状态Session 无状态Session Redis-Session 使用Redis-session的好处 用户认证信息存储到redis缓存中,形成无状态会话 便于扩展,当单体应用扩展为集群会相当方便 便于权限验证

紫芝的博客 1790

接口操作MySQL跟MongoDB事务回滚问题

通常使用的事务注解:@Transactional 是不会对MongoDB生效的,但是在一些生产接口中无法避免同时使用MySQL跟MongoDB的操作。

weixin_45932023的博客 1579

西电2023秋季机器学习复习提纲

西电2023秋季机器学习复习提纲,希望对学弟学妹有帮助

weixin_62083045的博客 5711

10-SpringSecurity:JWT及无状态服务

关于JWT的介绍,网上资源有很多,简单来说,JWT由三部分构成:Header、Payload、Signature,三者之间以点号. 分隔,前面两部分使用Base64编码(关于Base64编码的更多信息。

qq_44005305的博客 541

钉钉开发(三)——Java推送钉钉待办任务

之前一篇博文中,讲解了如何推送钉钉群消息,感兴趣的可以点击查看。 钉钉开发(一)——Java给钉钉群推送消息

Monten_Cristo的博客 6412

一文了解web无状态会话token技术JWT

前言 目前web开发前后端已经算非常的普及了。前后端分离要求我们对用户会话状态要进行一个无状态处理。我们都知道通常管理用户会话是session。用户每次从服务器认证成功后,服务器会发送一个sessionid给用户,session是保存在服务端 的,服务器通过session辨别用户,然后做权限认证等。那如何才知道用户的session是哪个?这时候cookie就出场了,浏览器第一次与服务器建立连接的时候,服务器会生成一个sessionid返回浏览器,浏览器把这个sessionid存储到cookie当中,以

woliuqiangdong的博客 919

UE 动态获取 资源缩略图 下载到本地或返回图片信息

UE 动态加载资源缩略图 返回图片信息或保存到本地

qq_46080252的博客 1939

【计算机图形学】Pov-Ray画的垃圾小车

效果: 代码: #include "colors.inc" #include "metals.inc" #include "glass.inc" //相机 //这个位置车子刚好落在草地上了 camera { location direction z*1.5 right x*image_width/image_height look_at

lishichengyan的博客 1749

有状态会话Bean(sfsb)和无状态会话Bean(slsb)的区别

  有状态会话Bean和无状态会话Bean的区别状态通常理解为对象的属性,那么无状态就是没有属性,有状态就是有属性,这种理解是不正确的。这里的无状态确实与属于相关,但有状态会话Bean和无状态会话Bean之间的区别并不是是否有属性,而是是否保存客户端的属性。有状态会话Bean会保存客户端的状态,而无状态Bean不会专门保存客户端的状态。这里需要强调“专门”是因为无状态会话Bean也会有

李绪成的一亩三分地 4818

单细胞分析实录(12): 如何推断肿瘤细胞

公众号后台回复20210418,获取本文的测试数据 1. 回顾 前面我已经讲解了inferCNV的基本用法,这一节继续学习:如何推断肿瘤细胞。本文应该是到目前为止,全网最详细的帖子(之一)。 关于肿瘤细胞的推断,比如研究上皮细胞起源的肿瘤,我见过的一些做法如下 简单粗暴型:将来源肿瘤病灶的所有上皮细胞都看成是肿瘤细胞 看CNV:将来源于肿瘤病灶的上皮细胞和参考细胞比较,将那些有明显CNV的细胞看作肿瘤细胞 看表达特征:考虑到有的肿瘤细胞可能没有CNV层面的变化,有的文章会根据肿瘤与正常的表达谱来区分是.

TOP生物信息 1万+

建立你的第一个无状态会话Bean--HelloWorld之二

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 482

4.1 AI Agent对比分析:Coze、Dify、LangGraph,如何选择Agent框架

本文对比分析了三大主流AI Agent框架:Coze(字节跳动平台,可视化开发,适合快速企业应用)、Dify(开源企业级方案,支持定制部署)和LangGraph(代码开发灵活,适合复杂需求)。选择指南建议:需要快速开发选Coze,需开源定制选Dify,复杂灵活需求选LangGraph。核心要点包括理解各框架特点、根据需求评估选择,并提供了实践建议。下节将介绍Coze平台的实战应用。

yonggeit的博客 3149

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

建立你的第一个无状态会话Bean--HelloWorld之三

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 455

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java.beans.transient_建立你的第一个无状态会话Bean--HelloWorld之二

这里是 DemoBean 企业JavaBeans DemoBean.java 的源代码:/*** DemoBean -- This is implemented by the EnterPrise* Bean author This class must extend* javax.ejb.SessionBean and implement* the methods in this interfa...

weixin_32205057的博客 162

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

① EJB无状态的bean(创建EJB的基础教程)

① EJB无状态的bean 1.定义 无状态会话bean是一种企业bean,它通常用来做独立操作。无状态会话Bean根据其名字没有任何关联的客户端的状态,但它可能会保留其实例的状态。就相当于我们spring中的单例对象,能够保存信息,服务于多个请求连接。 2.创建过程 2.1 创建服务端程序(EJBServer) 选择Java Enterprise,同时勾选(EJB),注意选择的jdk一定要是1.7.选择jboss服务器进行开发。 创建完成后,会自动在lib下面下载javax.ejb-api.jar,我

weixin_43899635的博客 750

EJB3.0学习(二)第一个程序HelloWorld

 开发只存在Remote接口的无状态的BEAN一、要定义一个会话BEAN,首先要定义一个包含他所有业务方法的接口。这个接口不需要任何注释,和普通的java接口一样定义。调用EJB的客户端通过使用这个接口引用从EJB窗口得到的会话Bean对象stub。接口定义如下:HelloWorld.javapackeage clchun.ejb3; public interface HelloWorld{ 

学习者专栏 2581

ejb3.0 第2,3讲-开发第一个无状态会话bean和客户端

  ejb中的3种bean:     什么是会话bean? 编写第一个ejb3的会话bean: 步骤: 1.ejb企业级开发是面向接口编程的,我们完成第一个HelloWorld的例子,首先写接口,也就是远程接口(服务器端) package cn.com.xinli.ejb3; public interface HelloWorld { public ...

a8366的专栏 254

第一个EJB程序——HelloWorld(无状态会话bean)

在前面简单介绍了一下EJB的分类和它的环境配置,下面就写下他的第一个程序。我记得每一次学习语言的时候,第一个程序都是HelloWorld,所以,在学习EJB的时候也不例外,下面就让我们来写下第一个EJB程序——HelloWorld。 (1)新建一个项目EJB_HelloWorld. (2)打开window----&gt;preference------&gt;User Libraies ...

小学徒成长专栏 236

我的EJB学习历程(二)

  先说点题外话, bromon说的真有点恐怖,不知道消息来源的真实性,如果真是那样我想国内的人也不会马上就全部跑去转用EJB3吧。呵呵,不过还是要谢谢bromon 和我的铁杵我的针 ,我的第一篇文章终于有人看了,希望越来越多的人的加入!J     第一章    EJB开发   EJB的角色:(规定了6种开发和部署的角色) l         企业BEAN提供者(Enterprise Bean P

AGainsT ALL oDDs 's Garden 8723

SpringBoot——第一个HelloWorld、自定义bean注入容器

1.第一个HelloWorld 创建springboot项目。 1.1pom.xml <!-- 开发web场景需要导入的包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>

zh_tnis的博客 417

EJB3.0开发本地接口的无状态会话bean

概述 当客户端与ejb运行在同一个jvm时,他们之间可以通过内存进行交互,没有必要进行网络通信,减少性能的开销,所以引入了本地接口,只有客户端与ejb运行在同一个jvm中(客户端与ejb发布在同一个jboss内),才能采用本地接口,否则只能采用远程接口。实现编写本地接口类,继承与前面编写的远程接口,以使本地接口继承远程接口的所有业务方法package wang.ejb3;p

天空的云 2540

无状态EJB

无状态EJB     本文主要做一个HelloWorld 无状态会话Bean 大家知道完成一个无状态会话Bean主要有三个类: 两个接口类(Home Interface以及Remote Interface),一个HelloWorld的实现类; 以及两个EJB的部署描述符,在WebLogic Server中部署描述符有如下两个文件: ejb-jar.xml以及WebLog

YC.PENG的专栏 857

多项式除以单项式全解析:法则、易错点与高效训练法

整式运算是代数学习的基础,其中乘法分配律是连接乘法与除法的关键桥梁。除法作为乘法的逆运算,多项式除以单项式的本质就是逐项分配相除,并通过分数拆项与同底数幂法则完成化简。掌握这一运算,不仅有助于巩固整式乘除的闭环思维,更能为后续分式化简、几何面积计算等综合应用铺平道路。在实际学习中,学生常出现漏项、符号误判、指数混淆、结果遗漏常数项等典型问题,且容易忽略商可含分式的合法情况。从基础计算到混合运算、逆向求被除式、几何代值等题型,都需要遵循先拆后算再验算的有效策略,并结合错因诊断进行专项训练。本文系统梳理多项式除

weixin_34221773的博客 162
上一篇: 建立你的第一个无状态会话Bean--HelloWorld之二
下一篇: 建立你的第一个无状态会话Bean--HelloWorld之三
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值