首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WsImport蚂蚁任务与JDK 6

WsImport蚂蚁任务与JDK 6
EN

Stack Overflow用户
提问于 2011-07-28 16:26:35
回答 2查看 20.5K关注 0票数 3

我试图使用jax-ws生成web服务代理类,使用wsimport ant任务(类似于这个问题 ),并提出以下问题:

据我所知,JDK1.6的最新版本包括jax-ws,WsImport ant任务是在JDK的tools.jar文件中定义的。

为什么ant不自动找到它?

为什么eclipse不能自动找到它呢?

我发现了一些关于在JDK 6中使用jax-ws的引用,但这些引用似乎是基于复制单独下载的jax-ws库并将其放到JDK ext文件夹中(考虑到现在它实际上已与JDK捆绑在一起,我认为不再需要它)。

,对于已经包含jax-ws?的JDK1.6版本,使用wsimport任务的正确方法是什么?

我的构建XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project name="wsproxy">
    <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" />
    <target name="wsgentest">
        <wsimport
            wsdl="http://localhost/Service?wsdl"
            destdir="bin-gen"
            sourcedestdir="src-gen"
            keep="true"
            verbose="true"
            package="com.ws">
        </wsimport>
    </target>
</project>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-03 16:04:50

事实证明,JDK中的WsImport类实际上不是一个ant任务,而是实际的wsimport命令行工具。我也误解了包名: com.sun.tools.internal.ws。

实际的ant任务可以在地铁包这里中的webservices-tools.jar中找到。您需要将其放到ant目录中。

票数 6
EN

Stack Overflow用户

发布于 2016-04-20 07:21:48

据我所知,与JDK6捆绑的是二进制工具本身,而不是实际的Ant任务。

我在我的开发框中有1.6.0_31,尽管这是一个稍微特殊的(JRockit R28.2.3),这是我找到的正确使用wsimport任务的唯一方法。

  1. 从官方网站下载一个合适的JAX版本。对于JDK6,它应该是一个直到2.1.10的版本。如果尝试使用2.2+版本,就会出现类路径冲突。
  2. java -jar {jaxwsJarName}安装JAR内容,不管它的名称是什么。此命令将创建一个[jaxws-ri]文件夹。
  3. 在选择的位置复制[jaxws-ri/lib]文件夹的内容。尽管规模很大,但我还是希望在自己的项目中拥有外部库,以确保任何人都能够编译和打包代码,而不需要外部构件。
  4. 在构建文件中创建taskdef项和wsimport任务。

这是我的taskdef项目:

代码语言:javascript
复制
<taskdef
    name="wsimport"
    classname="com.sun.tools.ws.ant.WsImport">

    <classpath>
        <fileset dir="${lib.dir}/jaxws-ri-2.1.10">
            <include name="**/*.jar" />
        </fileset>
    </classpath>
</taskdef>

这是我的wsimport任务:

代码语言:javascript
复制
<target name="generate-code">
    <wsimport
        wsdl="${wsdl.dir}/${wsdl.name}-${wsdl.version}.wsdl"
        sourcedestdir="${src.dir}"
        destdir="${build.debug.dir}"
        package="${generated.code.package}">

        <depends file="${wsdl.dir}/${wsdl.name}-${wsdl.version}.wsdl" />
        <produces dir="${build.debug.dir}" />
    </wsimport>
</target>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6862345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档