优势:使用ant能够编写单个生成文件,这个生成文件可在任何java平台上一致的操作。
顶级project元素需要包含一个default属性,如果在ant被调用时没有指定目标,这个属性将指定要执行的目标,然后需要使用target元素定义该目标本身。
<?xml version="1.0"?>
<project defaul="init" name="项目名字">
<target name ="init">
........
</target>
<target name ="...">
........
</target>
</proget>
WEB服务是一种分布式技术,与EJB最大的不同,Web服务属于行业规范,可以跨平台及语言。而Ejb属于java平台规范,尽管理论上可以跨平台,但是实现起来比较复杂。所以局限java平台。两者偏重点不一样,web服务偏重的是这个系统对外提供什么功能,而ejb偏重是如何使用一个组件组装这些功能。比如一个硬盘,它对外提供的是存储服务,这是WEB服务关注点,对于怎么组装这个硬盘,怎么构造这些小零件,是Ejb关心的。
javaEE为web service提供两种编程模型:EJb容器模型及web容器模型。
tomcat不能运行EJB。一般用jboss并且导入client文件夹下的所有jar包。
EJB个人理解:在服务器端编写接口,并且编写实现这个接口的javabean类,在这个类标上@remote(接口。class),@Local(接口。class),@stateless,@stateful等关键词。可以同时又本地接口和远程接口。无状态bean使用实例池技术管理bean。有状态bean使用激活管理bean。
激活原理:当这个bean在一段时间不使用,这个bean的会话信息从内存保存在磁盘上(钝化过程),如果缓存时间内,用户发起会话请求,这个bean会话信息从磁盘还原到内存(激活过程),服务用户。
编写客户端利用JNDI连接服务器端的javabean类实现这个bean的功能。服务器可以分布在多个地方。而客户端在任何地方都可以读取。所以构成分布式。
InitialContext ctx=new InitialContext();
接口类型 变量=(接口类型)ext。lookup(实现的接口类/local(remote));
变量.方法
通过本地接口调用EJB,直接在内存交互,避免网络通信造成的各种性能开销,我们才能调用本地接口,否则只能调用远程接口。只要客户端与ejb同在一个jboss内,就认为在同一个JVM上。
客户端与ejb部署在同一个jboss内(同时有本地接口与远程接口),优先调用本地接口。
两种方法在一个bean类中调用另一个bean对象:
1、JNDI;InitialContext ctx=new InitialContext();
接口类型 变量=(接口类型)ext。lookup(实现的接口类/local(remote));
变量.方法。
2、依赖注入;@EJB 要调用的bean类实现的接口;当有两个相同的类实现同一个接口。要这样写:@EJB(beanname=“要调用的bean类名”) 要调用的bean类实现的接口