使用 Apache Axis 和 Castor 创建 Web 服务
目前,我们可以继续我们的工作,使用 Castor 生成数据模型绑定,来替换 WSDL2Java 所创建的。因为 Castor不是特定于 Web 服务的,它是直接使用 XSD 文件,而不是 WSDL 文件。因此,可以使用下面的命令,将 XSD 文件传递给它:%java org.exolab.castor.builder.SourceGenerator -i "Web Content/StockQuote.xsd"
-package com.ibm.w3.services.stockquote
-nomarshall
-dest "Java Source"
-f
您使用命令行,并传递参数给 Castor。参数 -package 是对应于 WSDL2Java 的 NStoPkg 参数。参数 -nomarshall 告诉 Castor 不要在所生成的 bean中产生编组(marshall)方法(marshall、unmarshall、validate)。在您的示例中,这些方法是不必要的,因为Castor Serializer and Deserializer for Axis 是直接使用 Castor Marshaller 和Unmarshaller类,这可以实现同样的目的,所以,我们使用参数来关闭它。如果您计划使用这些对象作为一个大系统的一部分,也可以打开这个参数。参数 -f 仅仅告诉 Castor,在没有提示的前提下去覆盖所有现有的文件。如果您注意到了这一点,您将清楚,这将覆盖那些在前面步骤中由 WSDL2Java 所生成的一些数据模型 bean。但是不用担心,因为您不用这些文件,所以这将不是一个问题。
Castor 其余的选项在 castorbuilder.properties 文件中指定。大部分属性都不重要,但是,有一个很重要的设置:javaclassmapping设置。
# Java>
#
org.exolab.castor.builder.javaclassmapping=element
这个设置决定了 Castor 如何从您的 Schema 中生成类。根据您如何编写您的 Schema,您也许想使用 element 或者 type。两者的区别是 element 方法为所有的 complexType 类型的元素生成类。对于所有的顶级 会生成抽象类。顶级 类型的 Schema 中的元素都将为之生成一个类,这个类继承了
页:
[1]