您的位置:jsp学习站首页 >> 应用服务器 >> weblogic >> 在WebLogic和.NET上协同开发Web service

在WebLogic和.NET上协同开发Web service (1)

[ 来源:互网络 | 更新日期:2007-09-15 07:11:51 | 浏览次数:10492]
简介:1版本的发布感到很兴奋。WebLogic 6
作为一个向财富500强公司销售应用服务产品公司的开发者,我对WebLogic 6.1版本的发布感到很兴奋。WebLogic 6.1支持J2EE 1.3的特征本来已经是提高或采用这种产品的一个原因,引入广基于SOAP(Simple Object Access Protocol简单对象存取协议) /WSDL(Web services Description Language Web服务描述语言)的Web services技术对于一个已经很强大的应用服务器是一个很重要的进步。让我感兴趣的是它能如此相对简单的利用这个新的基础结构的功能。对于RPC(Remote Procedure Call 远程过程调用)服务它是一个简单易懂的两步过程。

首先,创建一个无状态会话EJB来实现应用逻辑。这里唯一的问题是设计接口方法声明,使用方法上需要传递简单对象。考虑到这些作为复杂类型的对象,它除了有get/set功能来处理属性(遵循JavaBean规范)外没有其他的功能。同时也可以支持复杂类型数组和复杂类型嵌套。关键是在设计原则上要保持方法的简单以及服务本身的驱动器行为。如果异构是一个设计目标,那么不要把Web services当作对象串行化技术来考虑,而应当作是一种展示业务事件功能的一个方法。

然后, 用wsgen Ant任务创建.ear文件。在WLS产品销售时WebLogic捆绑这个功能以及Ant 1.3版本。产品文档中提供了该如何正确的完成该任务的详细描述。我的build.xml脚本文件包括以下的部分:

<target name="webservice" depends="init">
<wsgen destpath="/xylo/dev/${beanname}.ear" con
text="/${beanname}" protocol="http">
<rpcservices
path="${jardest}/ejb_${beanname}.jar">
<rpcservice bean="${beanname}"
uri="/${beanname}"/>
</rpcservices>
</wsgen>
</target>

程序定义了一个新的webservice target任务。它依靠一个叫做 init 的对象,依据常规在init target中定义了环境变量和参数。我所有的脚本文件都定义了 beanname 变量,它以各种不同的方式命名必需的文件。这个target将在一个运行中的WLS实例上创建和部署.ear文件。WLS 6.1 以一种非常简单的方法实现了SOAP和WSDL的一个保守的子集。它影响了已经由EJB建立起来的框架,同时还向开发者展示在不用添加任何Java代码情况下,如何对现存的EJB组件做成Web services。

不可避免的旅程颠簸

我正在处理一个项目它需要.NET客户端可以调用部署WLS上的服务。这段的代码在用本地类型(由XML模式定义)作为参数或返回值时工作正常。不幸的是,复杂类型或任何类型的序列则完全是另外一回事。在现实中这种限制有时是无法接受的。我求助于WLS参考文档看到了一个注释声明说WLS6.1支持微软SOAP Toolkit 2.0 SP2。作为 在W3C (WWW 联合会) XML委员会的一个关键的成员,微软在他的.NET框架中采用了2001 XML模式(XSD)规范。而SOAP Toolkit 2.0是基于1999年推荐的版本,WLS 6.1也是。

当今Web services正被认为是互操作的万能药,本文章对正确理解它也是有必要的。新技术一方面在发展同时它也同时也在变成类似于SOAP和WSDL等协议的基础。可以理解的是,应用服务器厂商必须提供稳定的和可靠的基础组件,它们必须要不犹豫的去支持最新的和最好的工业规范。我相信我的这些问题是可以解决的,在给出了简单的和精确的基于XML的Web services技术的情况下,我决定比较深入的研究互操作能力的问题。

互操作能力的问题

这篇文章略述了开发者必须面对的XML相关的互操作能力的问题,给出了WLS和.NET目前的状态。它们能分别被分类在两个涉及到WSDL 和 SOAP
[1] [2] [3]
Tags:关键字:在WebLogic和.NET上协同开发Web service
责任编辑:glen