0

wsdlc ツール (weblogic 10.3.1) を使用して、wsdl からクラスを生成します。次の外部 jaxb バインディング カスタマイズ ファイルがあります。

<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>

コンパイル時のエラー メッセージ: シンボル my.MySuperClass が見つかりません。そしてjavacから:「パッケージmyは存在しません」。クラスパス =<pathelement location=などを介して含めるすべてのものと、Eclipse プラグインからの 60 行。問題は、wsdlc が開始する javac コマンドにあります。このコマンドのクラスパスは正しいですが (ハードコードされたパスなど)、「パッケージ ... が存在しません」。

ant からの 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>
4

3 に答える 3

1

build.xml使用方法を示す抜粋を提供してくださいwsdlc

ドキュメントによると:

WebLogic固有のwsdlc属性に加えて、次の標準javac属性を定義することもできます。各属性の詳細については、Antのドキュメントを参照してください。

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

wsdlc Antタスクでは、次の標準のAnt子要素を使用することもできます。

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

含めるクラスパスを指定しましたmy.SuperClassか?

于 2009-10-22T09:00:57.703 に答える
1

my.SuperClassすでに存在している必要があり、wsdlc生成されません。生成されたコード (ここで失敗していると思われる場所) のコンパイルに関しては、javac がmy.SuperClassそのクラスパスで見つからないためです。

于 2009-10-22T08:51:35.830 に答える
0

クラスを適切に jar しませんでした。WinZip を使用していくつかのクラスを jar にすばやく追加できると思っていましたが、WinZip の「パス」は Java のパッケージ名と等しくありませんでした。少し時間がかかりましたが、クラスパスについて学びました。

于 2009-10-23T15:12:07.703 に答える