2011-06-21 7 views
0

のApache Axis2を使用してJava Webサービスプロキシクライアントを生成しようとしています。HR-XML Consortiumです。私はwsdl2javaコマンドラインツールを使用してプロキシクライアントを生成しています。HR-XML PositionOpening WSDL用のWebサービスプロキシクライアントの生成

コマンド:

wsdl2java -uri http://ns.hr-xml.org/schemas/org_hr-xml/3_1_1/Services/Web_Services/WSDL/PositionOpening.wsdl -d adb -o hrxml-positionopening 

最後に、私はその後ant jar.allを呼び出してJARに生成されたクラスを変換してみてください。残念なことに、適切にコンパイルしていくつかのエラーをスローすることに失敗しています。理由は分かりません。 100以上のエラーがありますが、上に表示される最初の3つのエラーを以下に示しています。

E:\axis2-1.5.4\bin\hrxml-positionopening>ant jar.all 
Buildfile: build.xml 

init: 

pre.compile.test: 
    [echo] Stax Availability= true 
    [echo] Axis2 Availability= true 

compile.src: 
    [javac] Compiling 3 source files to E:\axis2-1.5.4\bin\hrxml-positionopening\build\classes 
    [javac] E:\axis2-1.5.4\bin\hrxml-positionopening\src\org\hr_xml\www\_3\ws\PositionOpening_ServiceStub.java:315862: 'else' without 'if' 
    [javac]           else 
    [javac]          ^
    [javac] E:\axis2-1.5.4\bin\hrxml-positionopening\src\org\hr_xml\www\_3\ws\PositionOpening_ServiceStub.java:315964: 'else' without 'if' 
    [javac]        } else { 
    [javac]        ^
    [javac] E:\axis2-1.5.4\bin\hrxml-positionopening\src\org\hr_xml\www\_3\ws\PositionOpening_ServiceStub.java:315718: 'try' without 'catch' or 'finally' 
    [javac]    try { 
    [javac]   ^

誰かがこれに軽視できますか?私の目的は、このPosition Opening WSDLをJARに変換して、アプリケーション内から関数を直接使用/呼び出しできるようにすることです。

EDIT:

その間、私もJAX-WSのwsimportツールと試みたが、それは、コマンド自体に失敗しています。

E:\jdk1.6.0\bin>wsimport.exe -d hrxml-positionopening http://ns.hr-xml.org/schemas/org_hr-xml/3_1_1/Services/Web_Services/WSDL/PositionOpening.wsdl 
error: Property "Type" is already defined. 
    line 1473 of http://ns.hr-xml.org/schemas/org_openapplications_platform/1_1/Common/OAGi/Components/Components.xsd 
error: The following location is relevant to the above error 
    line 1480 of http://ns.hr-xml.org/schemas/org_openapplications_platform/1_1/Common/OAGi/Components/Components.xsd 
error: com.sun.istack.internal.SAXParseException2: The following location is relevant to the above error 

答えて

1

私はそれはJAX-WSのwsimportツールで失敗した理由を見つけることができました。以下に示すようにHR-XML and Java documentationから、理由及び周りにその作業を説明する:

HR-XMLコンソーシアムによって供給されるJAX-WSが供給HR-XML用のWSDLとのXSDを処理できません。スキーマやWebサービスの定義にエラーはありませんが、使用されるパターンとディレクトリ構造は、がJAX処理エンジンによってサポートされていないです。これは将来のバージョンで修正されることが期待されるJAX-WSの限界です。これらの問題を回避するには、次の変更を行う必要があります。

は共通\ OAGI \コンポーネント\ \ファイル org_openapplications_platform \ 1_1内の属性タイプは は、コード生成のためのを名前を変更する必要がありますcomponents.xsd。

しかし、antを使用してJARを構築しようとしているときに、なぜApache Axis2で失敗したのかについてはまだわかりません。

0

私は私がのためにschemaLocationので、私の地元のスキーマを持っていたことに注意してください(

それは「wsimportの-b binding.xml ...」をwsimportのために私の呼び出しで、このバインディングファイルを指定して動作させることができましたComponents.xsdは以下のxmlで変更する必要があります)

<jxb:bindings 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
    version="2.1"> 

    <!-- Raise theEnumMemberSizeCap limit --> 
    <jxb:bindings> 
     <jxb:globalBindings typesafeEnumMaxMembers="2000"/> 
    </jxb:bindings> 


    <jxb:bindings schemaLocation="DataQuery_wsdl/Components.xsd" version="1.0"> 
     <!-- Customise the package name --> 
     <!--<schemaBindings> 
      <package name="com.example.schema"/> 
     </schemaBindings>--> 

     <!-- rename the value element --> 
     <jxb:bindings node="//xsd:complexType[@name='ContactType']"> 
      <jxb:bindings node=".//xsd:attribute[@name='type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='DocumentReferenceType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='ClassificationType']"> 
      <jxb:bindings node=".//xsd:attribute[@name='type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='ImageAttachmentType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='OpenAttachmentType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='SpecificationType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='EventType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='QualifiedAmountType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='TermABIEType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='DimensionABIEType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='CurrencyExchangeBaseType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='ProjectABIEType']"> 
      <jxb:bindings node=".//xsd:attribute[@name='type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='AddressBaseType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='TaxABIEType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='AllowanceChargeABIEType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

     <jxb:bindings node="//xsd:complexType[@name='LocationABIEType']"> 
      <jxb:bindings node=".//xsd:element[@ref='Type']"> 
       <jxb:property name="TypeAttribute"/> 
      </jxb:bindings> 
     </jxb:bindings> 

    </jxb:bindings> 


</jxb:bindings> 
関連する問題