WebLogic 与 Spring 的兼容性_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3611 | 回复: 0   主题: WebLogic 与 Spring 的兼容性        下一篇 
zhian.zuo
注册用户
等级:上士
经验:314
发帖:10
精华:0
注册:1970-1-1
状态:离线
发送短消息息给zhian.zuo 加好友    发送短消息息给zhian.zuo 发消息
发表于: IP:您无权察看 2014-7-2 14:52:54 | [全部帖] [楼主帖] 楼主

WebLogic 与 Spring 的兼容性

一.Spring 简介

Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB完成的事情,然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从 Spring 中受益。

  • 目的:解决企业应用开发的复杂性
  • 功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企业应用功能
  • 范围:任何 Java 应用

二.WebLogic 与 Spring 的兼容性

企业级 Spring Framework 的非侵入性 IoC 研发模型不仅依赖于对 J2EE 应用服务器可用的特性集,而且旨在补充该特性集。事实上,在苛刻的生产环境中,底层应用服务器基础架构所提供的服务质量对于 Spring 应用程式的可靠性、可用性和性能非常重要。

WebLogic Server 所提供的企业级特性能增强 Spring 应用程式的所有方面。

1 集群管理和部署

一个 WebLogic Server 集群包括多个 WebLogic Server 服务器实例,这些服务器实例同时运行并一起工作,从而提高了可伸缩性和可靠性。对客户端来说是透明的,集群对外就像单个的 WebLogic Server 实例一样。构成集群的服务器实例既能运行在同一台机器上,也能位于不同的机器上。能通过在现有的机器上向集群添加另外的服务器实例,或向集群添加机器以驻留增加的服务器实例,来提高集群的容量。

WebLogic Server 集群为 Spring 应用程式提供了一个企业级的部署平台,虽然其他的技术产品也支持类似的特性,不过他们不具有 WebLogic Server 所提供的丰富性和易用性。Spring 应用程式通常都被打包为 web 应用程式,这种情况下,要利用 WebLogicServer 集群就无需修改应用程式。只要把应用程式部署到集群中的服务器上,就能获得增强的可伸缩性和可用性

2  Spring 会话复制

Spring Web 应用程式习惯在 HTTP 会话中保存信息,比如订单 ID 和用户信息。为了支持集群中 servlet 和 JSP 的自动复制和故障恢复,WebLogic Server 支持几种用于保持HTTP 会话状态的机制。只要为应用程式提供正确的 weblogic.xml 部署描述符,SpringWeb 应用程式就能非侵入性地使用这些机制。

3 集群化的 Spring 远程控制

Spring 提供功能强大的远程控制支持,允许用户轻松导出和使用远程服务,同时仍然能利用基于 POJO 的一致编程模型。通过一个接合到适当的 Spring bean 的 RMI 接口,Vanilla Spring 支持代理 POJO 调用。然而,这种支持仅限于 JRMP(Sun 的 RMI 实现),或通过JndiRmiProxyFactoryBean 使用特定的远程接口。

借助于 Spring on WebLogic Server 认证,我们已扩展了 JndiRmiProxyFactoryBean和相关的服务导出程式——这样他就能支持所有 J2EE RMI 实现的 POJO 代理,包括 RMIIIOP 和 t3。

这方面的支持还包括一个 WebLogic RMI 部署描述符,他支持代理 RMI 接口上的集群化,所以 POJO 调用能跨一个 WebLogic Server 集群进行负载均衡。集群化的描述符是自动包含在内的,只需要以适当方式设置集群和将 Spring 应用程式部署到所有集群成员中。

4 对 Spring 组件的控制台支持

Spring on WebLogic Server 工具包中包含一个 WebLogic Server 控制台扩展,他显示了定义在应用程式中的 Spring bean、属性和操作。他构建在 WebLogic 控制台扩展门户框架之上,该框架能变换 WebLogic Administration 控制台的外观、功能和布局,而无需修改服务器或控制台代码。将控制台扩展复制到 yourdomain/console-ext 目录下,则重新启动服务器���就部署了控制台扩展。(参考 Spring on WebLogic Server 工具包)。

该扩展自动为不是 MBean 的 Spring bean(大多数 Spring bean)创建(JMX)管理接口,然后在 applicationContext.xml 中设置一个 MbeanExporter,并指定哪些 bean 要通过该 exporter 公开,这样控制台扩展就运行了。这项特性是 Spring 和 WebLogic Server

进行无缝和非侵入性合作的一个良好例证。要使应用程式支持 JMX,只需修改应用程式上下文部署描述符。要使控制台支持 Spring,只需将一个简单的 jar 部署到现有的域即可。

(另)WebLogic10.3添加支持 Spring 的控制台扩展

a.登录到管理控制台。

b.在控制台中,单击工具栏上的首选项 。

北京联动北方科技有限公司

5 Web 服务支持

Spring 远程控制功能的另一个方面是他对 RPC 风格 Web 服务的支持。WebLogicServer 提供基于 Ant 的工具,用于基于 Web 服务的 WSDL 描述生成 JAX-RPC 存根。Web 服务客户端使用这些生成的存根来获取代表服务器端操作的一个远程接口。Spring 提供了一个JaxRpcPortProxyFactoryBean 来简化了这个过程。我们发现,在 WebLogic Server 环境中设置 JaxRpcPortProxyFactoryBean 有些棘手,所以为了节约客户的时间,我们给出下面这个代码片断,演示怎么为一个包含复杂类型的 Document Literal 风格的 Web 服务设置代理生成。

    大部分属性都是顾名思义自解释的。其中有一些属性比较重要:

1) serviceInterface 是 Spring 的 setter 注入的副���品。这个类将表示 Web 服务操作;

2) customProperties 属性支持制定的 WebLogic Server Web 服务存根属性;

3) jaxRpcService 值被设置为 WebLogic Server 生成的 JAX-RPC 实现服务。JAX-RPC服务负责验证 Web 服务和加载复杂的类型映射。为了实现后者,必须把 WebLogicServer 的JAX-RPC 服务实现设置为 Spring bean。这确保了 JAX-RPC 服务构造函数的执行,这也是加载类型映射文件的地方。

把 JaxRpcPortProxyFactoryBean 上的 lookupServiceOnStartup 设置为 false,能关闭启动期间的 JAX-RPC 服务查找。这样,查找将在首次访问时进行。这对于和 WebLogicServer 的可靠请求/响应 Web 服务通信的客户端来说是必须的,而且此处的客户端也必须是个 Web 服务。通常在这些情况下,始发客户端是和 Web 服务客户端一起部署的。因为直到应用程式部署完成才会激活 Web 服务,所以客户端 Web 服务对于 Spring 的上下文加载是不可用的。

6 分布式事务
Spring 为事务管理提供了基础架构。除了对各家数据库供给商提供支持之外,Spring还通过一家 J2EE 供给商的 JTA 实现支持分布式事务。通过WebLogicJtaTransactionManager,能把 Spring 的 JTA 管理器设置为和 WebLogic Server的 JTA 实现一起工作。

WebLogicJtaTransactionManager 把责任直接委派给 WebLogic Server 的 JavaTransaction API。WebLogic Server 的 JTA TransactionManager 接口能通过 JNDI 为客户端和 bean 提供者所用,而由 Spring 来管理这种交互。事务管理器还支持事务的作用域;事务能作用于集群和域内部或二者之间。

WebLogicJtaTransactionManager 最强大的特性是管理分布式事务的能力和用于企业应��程式的两阶段提交协议。通过采用 WebLogicJtaTransactionManager,应用程式能通过 WebLogic Administration Console 来进行事务监视。WebLogicJtaTransactionManager还支持按数据库(per-database)隔离级别,这种级别支持复杂的事务设置。

7 Spring 中遇到的问题

测试环境:jdk1.6 、Spring2.0.5、Spring2.5;中间件:weblogic10.3.1、weblogic8.1
经过测试,Spring2.0.5 在 weblogic8.1 表现良好。在部署的过程中没有出现什么问题。Spring2.5 在 weblogic8.1 下就不能部署而且每次在报错,Spring2.5 在 Weblogic10.3.1 表现良好。在部署的过程中没有出现什么问题,Spring2.0.5 在 weblogic10.3.1 下也会出现报错现象不能部署。
在 orcale 的官方网站上可以确认:

  •  wls 10.3 支持的 Spring 2.5.x
  •  wls 10.0 支持的 Spring 2.0.x
  •  wls 9.2 支持的 Spring 1.2.8、2.0.x、2.5.x



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论