WEBLOGIC 6.1 的安装 无状态SessionBean开发 数据源的设置 JMS的使用的简单介绍
WEBLOGIC 6.1 的安装
所需软件: 一个安装用压缩包和一个破解的文件
安装过程:
1.双击安装文件,将WEBLOGIC安装到D:\BEA
在询问是否作为一个WINGDOW SERVER时,选择NO
其余选缺省值
2.按照破解说明,README文件,去除30天限制
3.编辑 D:\bea\wlserver6.1\config\mydomain\startWebLogic.cmd
69行中 set WLS_PW=yourpassword
56行中 set CLASSPATH=.;.\lib\weblogic_sp.jar;.\lib\weblogic.jar
就是WEBGLOIC运行中用到的CLASSPATH
在这里可以加入所需要的类和路径
73行 set STARTMODE=true
设置模式 true 为PRODUCT 模式
false 为 Development 模式
此模式中 可以自动查找并发布 applications 目录及其子目录中的EJB的jar包
4.在菜单中启动 WEBLOGIC
启动控制台(start default console)测试服务
无状态SessionBean开发
EJB是WEBLOGIC提供的一种服务,使用RMI
调用过程:
客户端,通过URL找到EJB服务器
通过JNDI找到具体的EJB
发送请求,得到返回值(远程方法调用协议)
客户端得到一个远程接口,WEBLOGIC 通过此接口给客户端提供服务
EJB通过JAR包发布,包含EJB的CLASS文件和EJB的描述文档
具体参照HelloWorld.jar的过程
其中HelloHome创建远程接口Hello,客户端通过这个接口
调用HELLOBEAN中的对应方法.
其中HelloBean.class只在服务器端使用
Hello and HelloHome interface 客户端和服务器均必须使用
注意weblogic-ejb-jar.xml 中 <jndi-name>com.helloworld</jndi-name>
com.helloworld用来标记EJB,并加入JNDI命名空间中
编制好EJB的JAR包后,拷贝到applications目录下
使用WEBLOGIC控制台发布
在左边树中点击 domain/deployments/ejb节点
在右边选择"Install a new EJB..."
根据提示操作
Weblogic6.1的JDBC缓冲池的使用
1.将用的的DRIVE CLASS 设置到 WEBLOGIC 的CLASSPATH 中
启动WEBLOGIC 打开控制台
2.在左边树中点击domain/Servcies/JDBC/Connection Pools节点
Configuration_General页中
name:myOraclePool (Any Name Is Ok!)
URL:jdbc
racle:thin:@ServerIp:1521:sidDRIVERCLASSName: oracle.jdbc.driver.OracleDriver
Properties: user=yourUserName Password=yourPassword
then clike the "create" button
The Pool is created.
3.Configuration_Connections页:
Initial Capacity: 缓冲池创建后的初始连接数。
Maximum Capacity: 最大的连接数。
Capacity Increment: 当连接不够时,缓冲池中自动创建的连接数量(不超过Maximum Capacity)。
Login Delay Seconds: 缓冲池创建连接时的允许延迟时间。
Refresh Period: 当Testing页配置了TestTableName后,如果此周期不为零,
则每个空闲连接都要按此周期进行测试,如果连接不正确,则关闭此连接并尝试重建连接。
Allow Shrinking: 缓冲池按Capacity Increment创建新的连接后,
如果存在空闲连接,是否允许自动删除空闲连接(直到达到Initial Capacity数量)
Shrink Period: 删除空闲连接的周期。
我们可以按如下格式设置:
Initial Capacity: 5
Maximum Capacity: 10
Capacity Increment: 1
Login Delay Seconds: 0
Refresh Period: 0
Allow Shrinking: true
Shrink Period: 15
Configuration_General页设置完毕后按右下角的"Apply"按钮保存设置。
Target页:绑到使用缓冲池的Server
缓冲池创建后可以修改,修改的结果只有重新启动Weblogic服务器后有效。
通过右键菜单可以删除、复制缓冲池。
4.设置数据源
1、在Weblogic的控制台左边树中点击
domain/Servcies/JDBC/Data Sources节点。
2、在右边选择"Create a new JDBC Data Source…"超链接,创建新的数据源。
按提示操作就行了
注:最好用TX Data Source ---进行tranaction处理.方法一样.
5.使用数据源
同EJB的使用,找URL找JNDI得到一个CONNECTION
JMS简介
消息系统
消息系统允许分开的未耦合的应用程序之间可靠地异步通信。
类同邮件系统.
通常有两种消息类型。
1.发布/订阅(publish/subscribe)
发布/订阅消息系统支持一个事件驱动模型,消息产生者和使用者都参与消息的传递。
产生者发布事件,而使用者订阅感兴趣的事件,并使用事件。
产生者将消息和一个特定的主题(Topic)连在一起,消息系统根据使用者注册的兴趣,将消息传给使用者。
2.点对点(Peer to peer)
在点对点的消息系统中,消息分发给一个单独的使用者。
它维持一个"进入"消息队列。消息应用程序发送消息到一个特定的队列,而客户端从一个队列中得到消息JMS和EJB一样是WEBLOGIC 提供的服务,客户端通过JNDI名字查找在控制台 先创建一个JMS的主题,设定一个JNDI(参照提示做啊,跟前边的介绍雷同)
一个典型的JMS客户端由下面的几个基本步骤来创建:
创建一个到消息系统提供者的连接(Connection)
创建一个Session,用于接收和发送消息
创建MessageProducer和MessageConsumer来创建和接收消息
当完成了上述步骤后,一个消息产生者客户端将创建并发布消息到一个主题,(JNDI)
而消息使用者客户端会接收与一个主题相关的消息。
1.创建一个Connection
一个Connection提供客户端对底层的消息系统的访问。并实现资源的分配和管理。
通过使用一个ConnectionFactory来创建一个Connection,通常用JDNI来指定:
Connection message=new initialContext();
TopicConnectionFactory topicConnectionFactory=(TopicConnectionFactory);
topic = (Topic) jndiContext.lookup(topicName);
topicConnection =topicConnectionFactory.createTopicConnection();
2.创建一个Session
Session是一个比较大的JMS对象,他提供了生产和消费消息的手段。
用于创建消息使用者和消息产生者。
topicSession = topicConnection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
两个参数用于控制事务和消息确认。
3.定位一个Topic
用JDNI来定位一个Topic,Topic用于识别发送或接收的消息,在发布/订阅系统中。
订阅者订阅一个给定的Topic,而发布者将它发布的消息与一个Topic相连。
下面是创建一个Topic "WeatherReport"
Topic weatherTopic=messaging.lookup("WeatherReport");
4.启动Connection
在上面的初始化步骤之后,消息流是禁止的,用于防止在初始化时发生不可预料的行为。
一旦初始化结束,必须让Connection启动消息系统。
topicConnection.start();
5.创建一个消息产生者
在发布/订阅里,一个产生者发布消息到一个指定的Topic。
下面的代码显示创建一个产生者,以及后续的建立和发布一个简单文本消息。
TopicPublisher publisher=session.createPublisher(weatherTopic);
TexeMessage message=session.createMessage();
message.setText("ssss");
publisher.publish(message);
下面是一个消息使用者的代码
topicConnection =topicConnectionFactory.createTopicConnection();
topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
topicSubscriber = topicSession.createSubscriber(topic);
topicListener = new MsgListener();
topicSubscriber.setMessageListener(this);
topicConnection.start();