我用的是wsdlc工具(任何10.3.1)产生的课程,从wsdl。我有以下外部修订绑定的定制文件:

<jaxb:bindings
    xmlns="http://java.sun.com/xml/ns/jaxb"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    schemaLocation="web/WEB-INF/....xsd"
    version="2.1">

    <jaxb:bindings  node="/xs:schema">
        <jaxb:globalBindings>
            <xjc:superClass name="my.MySuperClass" />
        </jaxb:globalBindings>
    </jaxb:bindings>
</jaxb:bindings>

错误的消息complilation是:无法找到符号我。MySuperClass.从javac:"包我不存在"。类路径=的一切,包括我通过 <pathelement location= 等等。60线从蚀的插件。问题在于javac命令,该命令wsdlc发起。类路径的这一命令是正确的(硬编码的路径,例如),但仍然"包...不存在"。

使用的wsdlc从蚂蚁是这样的:

<path id="class.path">
  <pathelement path="${java.class.path}" />
  <pathelement location="... hard coded path on disk to a jar" />
</path>

<target name="generate-ws-from-wsdl">
<wsdlc failOnError="true"
       srcWsdl="${basedir}/web/WEB-INF/ps.wsdl"
       destImplDir="${basedir}/src"
       destJwsDir="${basedir}/web/WEB-INF/lib"
       srcPortName="PsPort"
       type="JAXWS">
    <binding file="jaxb-bindings.xml" />
    <classpath refid="class.path" />
</wsdlc>
</target>
有帮助吗?

解决方案 3

我没有正确地运行我的类,我想我可以使用WinZip快速添加一些类到jar,但WinZip中的'path'不等于java中的包名。我花了一段时间,但我学到了类路径。

其他提示

my.SuperClass必须已经存在,wsdlc不会为您生成它。在编译生成的代码时(这是我假设的是失败的地方),这是因为javac在类路径中找不到<=>。

请提供的摘录 build.xml 显示如何使用 wsdlc.

根据 文档:

除了任何特定的 wsdlc属性的,也可以定义 以下标准javac 属性;看到蚂蚁文件 有关的其他信息每 属性:

  • bootclasspath
  • bootClasspathRef
  • classpath
  • [...]

你也可以使用以下 标准的蚂蚁孩子的元素 wsdlc蚂蚁的任务:

  • <FileSet>
  • <SourcePath>
  • <Classpath>

你有没有指定类路径包括 my.SuperClass?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top