菠萝三国

大江东去,浪淘尽...
随笔 - 34, 文章 - 47, 评论 - 22, 引用 - 0
数据加载中……

axis with ant

在用eclipes开发web service的时候,经常会用到java2wsdl,wsdl2java等命令,axis在发布的时候提供了相应的ant task,并放到了axis-ant.jar中。
  按照axis的ant相关文档配置的时候,需要引入相应的ant task,我在做这个配置的时候遇到了些障碍,开始的build.xml如下所示:

<?xml version="1.0"?>
<project default="axis" basedir=".">

<property name="axis.home" location="../" />

<path id="axis.classpath">
  <fileset dir="${axis.home}/WebRoot/WEB-INF/lib">
    <include name="**/*.jar" />
  </fileset>
  <fileset dir="${axis.home}/WebRoot/WEB-INF/classes">
    <include name="**/*.class" />
  </fileset>
</path>

<taskdef resource="axis-tasks.properties" classpathref="/axis.classpath" />

<target name="init" />

<target name="axis">
    <axis-java2wsdl
  classname="axis.service.SimpleObjectCreator"    
  location="http://localhost:8080/axis/services/SimpleObjectCreator"
      namespace="service.axis"
      output="simpleObject.wsdl"
      style="RPC"
      extraclasses="axis.bean.SimpleObject"
    >
      <classpath refid="axis.classpath"/>
    </axis-java2wsdl>
    <axis-wsdl2java all="true"
        url="simpleObject.wsdl"
        deployscope="Request"
        output="${axis.home}/src"
        serverside="true"
        skeletondeploy="false"
        testcase="true"
        noimports="false"
        typemappingversion="1.2"
    />
</target>

<target name="deploy">
 <axis-admin
  port="8080"
  hostname="localhost"
  failonerror="true"
  servletpath="axis/services/AdminService"
  debug="true"
  xmlfile="${axis.home}\src\axis\service\deploy.wsdd"
 />
</target>
   
</project>

  在执行ant的时候,总是报
    java.util.zip.ZipException: error in opening zip file
的错误,百思不得其解,后来找到了错误的原因,原来出在
    <path id="axis.classpath">...</path>
的定义上,因为这里包含
  <fileset dir="${axis.home}/WebRoot/WEB-INF/classes">
    <include name="**/*.class" />
  </fileset>
部分,<taskdef>解析时会把我指定的class文件当作一个压缩文件进行解压,产生异常,改成如下定义即可:
<path id="axis.classpath">
  <fileset dir="${axis.home}/WebRoot/WEB-INF/lib">
    <include name="**/*.jar" />
  </fileset>
  <pathelement location="${axis.home}/WebRoot/WEB-INF/classes"/>
</path>
第二个fileset改成pathelement,当<taskdef>解析时会把指定的location当作一个路径,不会报错。
  对于开源的ant真是又爱又恨啊,可恨的是文档太少了,如<path>,<taskdef>的说明等,惜墨如金啊。

posted on 2007-08-12 17:03 菠萝 阅读(1358) 评论(2)  编辑  收藏 所属分类: Ant

评论

# re: axis with ant  回复  更多评论   

谢谢,终于又解决一个问题
2008-03-14 14:58 | wanlu

# re: axis with ant  回复  更多评论   

真是太感谢了。帮了我一个大忙。
2010-07-16 13:00 | lll

只有注册用户登录后才能发表评论。


网站导航: