1、weblogic的热发布
将ear jar war拷到
C:\bea\user_projects\domains\mydomain\applications目录
weblogic会自动发布
通过jbuilder将ear或jar或war部署到服务器上。
2、在ejb中实现one-to-many
1、在many中的将外键字段属性删除
2、在删除many中的值时要将Collection转化为ArrayList,
并反向遍历ArrayList,先删除ArrayList中值,根据
ArrayList删除反回的对象转化为many的远程接口,通过
远程接口将many删除
3、ejb所用的技术:
Jndi:java naming directory inferface
Rmi:remote method invoke
4、实现ejb几个接口,几个类?
两个接口一个类
extends EJBHome
通过jndi得到home接口
create方法调用服务端的ejbCreate方法,在服务端产生一个EntityBean或SessionBean实例,向客户端返回一个远程接口。
通过find方法在从服务端找到一个EntityBean实例,向客户端返回一个远程接口。
extends EJBObject
在客户端通过rmi调用远程服务端方法。
通过remove方法调用服务端的ejbRemove方法,将EnityBean删除
implements SessionBean
在服务端实现真正的处理,实现核心业务
5、实现ejb相关的配置文件是什么?
ejb-jar.xml:说明ejb的两个接口一个类的。
weblogic-ejb-jar.xml:说明ejb的JNDI名
weblogic-rdbms-ejb.xml:o-rMapping实现数据库表、字段与ejb属性对应的关系。
ejb2.0的开发
1、用jbuilder集成环境
2、可以用eclipse开发,用源代码注释说明,用ant执行xdoclet,xdoclet通
过源代码注释自动生相关的配置、两个接口一个类。
/**
-
@stateLess
-
@remote
*/
6、ejb的分类?区别
sessionBean
stateless:方法间不保留(1…1)
statefull:方法间保留(1…n)
entityBean:持久化
cmp:增删改容器
bmp:增删改手动jdbc
message driver bean
异处的消息处理
7、本地接口与远程接口的区别。
EJBHome(在不同的进程或主机间调用,即不同的jvm)
EJBObjet
EJBLocalHome(在同一进程,同是jvm中)
EJBLocalObject
8、请求处理的过程?
会话
url
factory
通过jndi得到一个home实例
在客户端通过home实例在服务端产生一个sessionBean,客户端返回一个接口
客户端通过远程接口调用方法。
9、statefull的生命周期
不存在
setSessionContext
create—>ejbcreate
就绪:可以调用remove方法将sessionBean删除、可以调用服务端的任何方法。
ejbPassivate(从就绪到挂起)
ejbActivate(从挂起到就绪)
挂起
如果超时自动删除
10、stateless的生命周期
不存在
setSessionContext
create—>ejbcreate
remove–>ejbremove
就绪
11、entityBean的生命周期:
不存在
setEntityContext
create—>ejbcreate
入池
空房子,没加载数据
ejbActivate
ejbPassivate
就绪
remove–>ejbRemove
加载了数据库的数据
12、EJB需直接实现它的业务接口或Home接口吗,请简述理由。
远程接口和Home接口不需要直接实现,
他们的实现代码是由服务器产生的,
程序运行中通过接口调用服务端产生的实例。
13、EJB的激活机制
以Stateful Session Bean 为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在就绪和挂起状态之间迁移。
就绪:从文件到内存,调用ejbActivate方法
挂起:从内存到文件,调用ejbPassivate方法
14、EJB是基于哪些技术实现的?并说 出SessionBean和EntityBean的区别
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JTA等技术实现.
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作。例如访问数据库、调用其他EJB组件.
EntityBean被用来代表应用系统中用到的数据.对于客户机,
SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑;
EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体.
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean .这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体.Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method.换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行.从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态.
15、EJB的分类是什么?各有什么特点?
sessionBean:主机重启消失
Stateless:不记忆
StateFull:一个用户多个操作可记忆
EntityBean:持久的数据库中
Cmp:容器通过o/r mapping实现数据的持久化,不写sql,实现方便,在速度慢。
Bmp:通过jdbc实现持久化,实现复杂,速度快
messageBean:提供异步处理。
16、EJB中主要的配置文件及作用是什么?
EJB部署时需要三个文件:
n Ejb-jar.xml:
u 将二个接口一个类打包在一起,给EJB一个名称。
u 说明当前的sessionBean的事务是由容器处理的。
u 其在所有的服务器上是通用的。
n Weblogic-ejb-jar.xml:
u 将一个EJB名称,对应一个JNDI,在仅对weblogic服务器
n Weblogic-rdbms-jar.xml:
u 实现o/r mapping的说明,相当于*.hbm.xml
17、说出数据连接池的工作机制是什么?
容器或相关的应用程序在其池中实例化多个边接,当应用程序在使用时,容器直接将池中的连接取出应用程序直接使用,同时当应用程序使用完后,容器还可以将连接收回。从而提高系统的效率。
18、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?
sessionBean:是一个过程
entityBean:是持久化,代表的是一个业务实体,有主键。
Struts+sessionBean+entityBean
EJB2.0加入的本地接口及本地home
EJB1.1中只有远程接口及远程home
19、EJB与JAVA BEAN的区别?
Java Bean 是可复用的组件,任何一个Java类都可以是一个Bean。但通常情况下,Java Bean是被容器所创建(如Tomcat)的,所以Java Bean具有如下特点:
一个无参的构造器
实现Serializable接口
私有属性
公有get set方法
Enterprise Java Bean 是一个分布式组件,其特点是
基于(RMI)技术的,可以被远程访问(跨进程、跨计算机)。
EJB必须被布署在Webspere、WebLogic容器中,不能直接访问ejb,而是通过容器访问ejb,容器是ejb访问的一个代理。
20、EJB的角色和三个对象
六个角色组成,分别是
EJB组件开发者(Enterprise Bean Provider):sun
应用组合者(Application Assembler)真正的开发商
部署者(Deployer):
EJB 服务器提供者(EJB Server Provider):sun ibm 小机
EJB 容器提供者(EJB Container Provider):weblogic jboss
系统管理员(System Administrator):维护员
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类
21、EJB容器提供的服务
主要提供
安全
事务管理
分布式
jts
声明周期管理
代码产生
持续性管理
锁和并发行管理等服务。
22、EJB规范规定EJB中禁止的操作有哪些?
1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等),
2.不能操作awt,
3.不能实现服务器功能,
4.不能对静态属生存取,
5.不能使用IO操作直接存取文件系统,
6.不能加载本地库.,
7.不能将this作为变量和返回,
8.不能循环调用。
23、EJB的基本架构
答:一个EJB包括三个部分:
Remote Interface 接口的代码
package Beans;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Add extends EJBObject
{
//some method declare
}
Home Interface 接口的代码
package Beans;
import java.rmi.RemoteException;
import jaax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface AddHome extends EJBHome
{
//some method declare
}
EJB类的代码
package Beans;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javx.ejb.SessionContext;
public class AddBean Implements SessionBean
{
//some method declare
}
24、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置
缺省安装中使用DemoIdentity.jks和DemoTrust.jks KeyStore实现SSL,需要配置服务器使用Enable SSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trust keystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。
25、如何查看在weblogic中已经发布的EJB?
可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB
想获得最新的“开发工具大礼包”
就请关注“蛙课网校”公众号回复“21”即可获得!