質問

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から:<!> quot; package my does not exist <!> quot;。クラスパス= <pathelement location=などを介して含めるすべて、およびEclipseプラグインからの60行。問題は、wsdlcが開始するjavacコマンドにあります。このコマンドのクラスパスは正しいですが(ハードコードされたパスなど)、それでも<!> quot; package ... does not exist <!> quot;。

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>
役に立ちましたか?

解決 3

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

他のヒント

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

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

ドキュメント

  

WebLogic固有に加えて   wsdlc属性、また定義できます   次の標準javac   属性; Antのドキュメントを参照してください   それぞれに関する追加情報について   属性:

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

次のものも使用できます   標準のAnt子要素   wsdlc Antタスク:

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top