2017-06-22 63 views
1

antでjunit testを実行すると、以下のエラーが表示されます。 テストクラスにはWebサービスAPIが必要です。このAbstractMethodErrorを解決するには?

誰かが解決するのに役立つことができますか?

<error message="javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V" type="java.lang.AbstractMethodError">java.lang.AbstractMethodError: javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V 
at com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:392) 
at com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:400) 
at com.sun.xml.ws.util.xml.XmlUtil.&lt;clinit&gt;(XmlUtil.java:233) 
at com.sun.xml.ws.client.WSServiceDelegate.createCatalogResolver(WSServiceDelegate.java:377) 
at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:363) 
at com.sun.xml.ws.client.WSServiceDelegate.&lt;init&gt;(WSServiceDelegate.java:321) 
at com.sun.xml.ws.client.WSServiceDelegate.&lt;init&gt;(WSServiceDelegate.java:230) 
at com.sun.xml.ws.client.WSServiceDelegate.&lt;init&gt;(WSServiceDelegate.java:211) 
at com.sun.xml.ws.client.WSServiceDelegate.&lt;init&gt;(WSServiceDelegate.java:207) 
at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:114) 
at javax.xml.ws.Service.&lt;init&gt;(Service.java:77) 
at com.citi.isg.amg.ws.client.AccountManagerWs.&lt;init&gt;(AccountManagerWs.java:42) 
at ... ... 

+0

、私は私の解決策を共有しています。ありがとう。 –

答えて

3

私はただ自分で根本的な原因を発見しました。

Oracle Documentationの場合、java.lang.AbstractMethodErrorは、アプリケーションが抽象メソッドを呼び出そうとしたときにスローされます。通常、このエラーはコンパイラによって検出されます。このエラーは、実行中のメソッドが最後にコンパイルされた後に、一部のクラスの定義が互換性なく変更された場合にのみ実行時に発生します。

私は、抽象クラスjavax.xml.transform.TransformerFactoryの実装をrt.jarに指定していません。 JUnitの

<sysproperty key="javax.xml.transform.TransformerFactory" 
         value="com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"/> 

内側の下に追加

は、それが動作します。

ので、最終的なJUnitのタスクは以下のようになります。GhostCat @

<junit showoutput="true" printsummary="yes" fork="true" forkmode="once"> 
      <classpath refid="junit.runtime.classpath" /> 
      <sysproperty key="javax.xml.transform.TransformerFactory" 
         value="com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"/> 
      <batchtest haltonfailure="no" todir="${test.result.dir}"> 
       <fileset dir="${test.src.dir}"> 
        <include name="**/*Test.java" /> 
       </fileset> 
       <formatter type="xml" /> 
      </batchtest> 
     </junit> 
関連する問題