频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Spring 2.0.1与BEA WebLogic Server 9.2的集成(5)

作者: Andy Piper/Chris Wall/Eric Hsiao/Rod Johnson 出处:Dev2Dev 2007-07-27 09:45    砖    好    评论   进入论坛
阅读提示:本文介绍了Spring 2.0 Framework、WebLogic Server以及这两者的集成的新特性,供大家参考!

注意上面的bean定义,另一个bean('assembler')被注入MBeanExporter的 'assembler'属性。下面是它的定义:

<bean id="assembler" 
class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
<property name="interfaceMappings">
<props>
<prop key="my_app_name:type=MaintenanceControl">
       fully.qualified.management.interface.name</prop>
<prop key="my_app_name:type=ExceptionMonitor">
       fully.qualified.management.interface.name</prop>
<prop key="my_app_name:type=RequestStatistics">
       fully.qualified.management.interface.name</prop>
</props>
</property>
</bean>

描述Spring JMX提供的所有内容超出了本文的范围。这样说就够了:上面定义的InterfaceBasedMBeanInfoAssembler bean是一个可能的策略,用以控制用户bean的哪些方法和属性实际地公开出来供管理之用,就像JMX操作和属性那样。InterfaceBasedMBeanInfoAssembler使用(任意地)接口决定公开哪些方法和属性。更多信息请查本文最后的参考资料一节。

记录在MBeanExporter的bean定义上的第二个属性是server属性。这是向MBeanExporter注入一个WebLogic Server的 MBeanServer实例的地方。MBeanExporter将输出所有已配置的bean到这一指定的服务器。下面是这个bean的定义:

<!-- WebLogic 9 MBeanServer -->
<jndi:jndi-lookup id="server" jndi-name="java:comp/env/jmx/runtime"/>

在server bean的这个定义中,实际上MBeanServer实例源自JNDI(使用为jndiName属性指定的值在上下文中查找)。对于MBeanExporter,MBeanServer源自JNDI的事实没有意义;这个将依赖性注入需要依赖性的对象透明源引是依赖性注入方法的一大附加值(上面所见的易于使用和配置的JndiObjectFactoryBean证明Spring的注入支持是非常高级的)。

最后,最有趣的是,MBeanExporter配置的一部分是beans属性。它是一个(JMX) ObjectNames到bean的一个简单映射,这些bean将导出到先前注入的MBeanServer实例以便管理。选择ObjectName的策略(在这种策略下,您的bean实际上会导出到MBeanServer)是完全可配置的。本例中,所用的缺省策略是简单地使用beans 映射的键作为ObjectName。(见JavaDoc,它是随Spring一起提供的,作为各种ObjectName策略的一个全面纲要。)

Web services支持

Spring 远程控制功能的另一个方面是它对RPC风格的 Web services的支持。WebLogic Server提供了基于Ant的工具,来根据Web服务的描述生成JAX-RPC存根。Web服务客户端利用这些生成的存根获取一个表示服务器端操作的远程接口。Spring提供一个JaxRpcPortProxyFactoryBean简化了这个过程。

我们发现,在WebLogic Server环境中正确地配置JaxRpcPortProxyFactoryBean有些棘手,所以为了节约您的时间,我们给出下面这个代码片断,演示如何为一个包含复杂类型的Document Literal包装的Web服务配置代理生成。

多数属性是自解释的。有几个比较有名:

◆serviceInterface是Spring setter注入的副产品。这个类将表示Web services操作。
◆customProperties属性支持定制的WebLogic Server Web服务存根属性。
◆jaxRpcService值被设置为WebLogic Server的生成的JAX-RPC实现服务。JAX-RPC服务负责验证Web服务和加载复杂类型映射。为了实现后者,WebLogic Server的JAX-RPC实现服务必须配置为一个Spring bean。这保证了JAX-RPC服务构造函数的运行,而且类型映射文件也在此加载。

在JaxRpcPortProxyFactoryBean上设置lookupServiceOnStartup为false,即可在启动时关闭JAX-RPC服务查找。当首次访问时,将会进行查找。这对于与可靠的WebLogic Server请求/响应Web services通信是必须的,而此处的客户端也必须是一个Web服务。在这些情况下,始发客户端通常是与Web服务客户端一起部署的。因为应用程序部署完成前不会激活Web服务,所以对于Spring上下文加载,客户端Web服务是不可用的。如下代码摘录自一个applicationContext-ws.xml上下文配置文件:

<!-- reliable asynchronous Web service for sending new medical records to medrec -->
<bean id="reliableClientWebServicesPortType"
class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean"
lazy-init="true">
<property name="wsdlDocumentUrl"
value="http://${WS_HOST}:${WS_PORT}/ws_phys/PhysicianWebServices?WSDL"/>
<property name="portName" value="PhysicianWebServicesPort"/>
<property name="jaxRpcService">
<ref bean="generatedReliableService"/>
</property>
<property name="serviceInterface"
value="com.bea.physician.webservices.client.PhysicianWebServicesPortType"/>
<property name="username" value="medrec_webservice_user"/>
<property name="password" value="weblogic"/>
<property name="customProperties">
<props>
<prop key="weblogic.wsee.complex">true</prop>
</props>
</property>
</bean>

<!-- allows the jaxRpcService class to execute its constructor

which loads in type mappings -->
<bean id="generatedReliableService"
class="com.bea.physician.webservices.client.PhysicianWebServices_Impl">
</bean>

参见WebLogic Server的 Overview Web Services Invocation 和 Remoting and Web Services Using Spring,可以获得更多相关信息。

安全性

WebLogic Server安全系统支持并扩展了Java EE的安全性,提供了一组丰富的安全提供程序,可以对其进行定制,来处理不同的安全性数据库或安全性策略。除了使用标准的Java EE安全性之外,应用程序编程人员还能够使用很多专有扩展,这些扩展使应用程序可以与安全系统紧密集成。WebLogic Server带有几个安全提供程序,例如,可以选择包含大部分流行LDAP服务器的身份验证数据库、Active Directory、本地Windows和一个内置的身份验证解决方案。可以使用定制的提供程序对内置的提供程序进行扩充,从而几乎可以与任意身份验证数据库、授权机制和凭证映射服务相集成。因为部署为webapp的Spring应用程序使用的是Java EE安全性,所以无需修改应用程序就可以获得WebLogic Server的安全性优点。

经验丰富的Spring用户还会熟悉Acegi——Spring自身的安全框架。目前,可以在应用程序中使用Acegi、WebLogic Server安全性,或同时使用二者,因为它们是相互独立的。稍后我们将讲述与此相关的更多信息。


共7页: 上一页 [1] [2] [3] [4] 5 [6] [7] 下一页
【内容导航】
专题
甲骨文85亿美元收购BEA
Java实用开发全集
Java类的基础教程专题
Java发展动态专题
BEA World 2006 北京
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·服务器基础知识入门 (查看30666次)
·龙芯要做中国的“奔腾” (查看22317次)
·刀片服务器基础 (查看22218次)
·2008年IT产业29个预言 (查看21006次)
·AMD Phenom三核处理器解析 (查看19298次)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。