tedwhy 发表于 2018-11-27 08:44:14

使用 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]
查看完整版本: 使用 Apache Axis 和 Castor 创建 Web 服务