首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wsimport生成错误代码

wsimport生成错误代码
EN

Stack Overflow用户
提问于 2011-07-06 00:32:14
回答 3查看 5.7K关注 0票数 3

我使用wsimport生成我的java存根文件。为此,我在Eclipse中使用了一个ant构建文件:

代码语言:javascript
复制
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
    <classpath>
        <fileset dir="../lib">
            <include name="jaxws-tools.jar" />
        </fileset>
    </classpath>
</taskdef>

<target name="generate">
    <wsimport wsdl="../wsdl/Knowledgebase.wsdl"
              destdir="../bin"
              sourcedestdir="../gen"
              keep="true"
              xendorsed="true">
    </wsimport>
</target>

任务运行时没有任何错误。它创建了不同的java文件,还有Knowledgebase.java和KnowledgebasePort.java。在der Knowledgebase.java中,有以下构造函数:

代码语言:javascript
复制
public Knowledgebase(WebServiceFeature... features) {
    super(__getWsdlLocation(), KNOWLEDGEBASE_QNAME, features);
}

对于它们,我得到一个错误“构造函数服务(...)是未定义的”。我导入了当前的jax-ws jar文件。我的生成过程是否中断了,我是否使用了错误的jars,或者错误在哪里?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-06 01:19:01

Service对象由Java EE SDK提供。它在Java EE 5和Java EE 6之间添加了一个新的构造函数。看起来您使用的wsimport来自Java EE 6 JDK,而编译器使用的是Java EE 5 SDK?

票数 4
EN

Stack Overflow用户

发布于 2012-11-07 00:17:00

例如,如果我们使用java、1.6.0_27和Metro2.2,我们需要认可webservices-api.jar。

我们必须将这个jar放到文件夹中,如果使用java-install-dir\jre\lib\endorsed\

  • In,我们必须确保我们使用的是目录java-install-dir中的正确
  1. 。这可以在窗口->首选项->Java->已安装的JREs>Add.

中完成

现在,错误“构造函数服务(...)未定义”应该会消失。

票数 2
EN

Stack Overflow用户

发布于 2013-03-06 19:32:28

您可以将xendorsed=设置为“true”,将xnocompile=设置为“false”,并让ant编译生成的java文件,这对我很有效

代码语言:javascript
复制
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
        <classpath>
            <fileset dir="${ext.myproject.path}/lib">
                <include name="*.jar"/>
            </fileset>
            <fileset dir="${platformhome}/resources/ant/lib">
                <include name="*.jar"/>
            </fileset>
        </classpath>    
</taskdef>

<macrodef name="myproject_before_compile_core">
        <sequential>
            <mkdir dir="${ext.myproject.path}/gensrc"/>
            <mkdir dir="${ext.myproject.path}/classes"/>
            <echo message="Generating WS stubs for Simulate BOM Service"/>
            <wsimport wsdl="${ext.myproject.path}/resources/wsdl/service.wsdl" package="com.xx.energy.yy.xyz.ws.stubs.service" xnocompile="false" destdir="${ext.myproject.path}/classes" sourcedestdir="${ext.myproject.path}/gensrc" keep="true" wsdlLocation="${ext.myproject.path}/resources/wsdl" xendorsed="true">
                <produces dir="${ext.myproject.path}/gensrc/com/xx/energy/yy/xyz/ws/stubs/service">
                    <include name="*.java"/>
                </produces>
                <depends file="${ext.myproject.path}/resources/wsdl/service.wsdl"/>
            </wsimport>
        </sequential>
    </macrodef>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6585913

复制
相关文章

相似问题

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