3

サンプルの axis2 ServiceClient を作成しようとしています。以下のエラーをスローしています

org.apache.axiom.om.OMException: No meta factory found for feature 'default'; this usually means that axiom-impl.jar is not in the classpath
    at org.apache.axiom.om.OMAbstractFactory.getMetaFactory(OMAbstractFactory.java:170)
    at org.apache.axiom.om.OMAbstractFactory.getMetaFactory(OMAbstractFactory.java:135)
    at org.apache.axiom.om.OMAbstractFactory.getOMFactory(OMAbstractFactory.java:184)
    at org.apache.axis2.description.AxisDescription.<init>(AxisDescription.java:68)
    at org.apache.axis2.engine.AxisConfiguration.<init>(AxisConfiguration.java:148)
    at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:639)
    at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184)
    at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:150)
    at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:143)
    at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:244)
    at org.apache.axis2.samples.tu.client.TUrlSOAPClient.addUrl(TUrlSOAPClient.java:46)
    at org.apache.axis2.samples.tu.client.TUrlClient.actionPerformed(TUrlClient.java:69)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

axiom-impl.jarクラスパスに存在します。以下はコードスニペットです。コンソールには、sysout ステートメント「Entered」が表示され、その後 ServiceClient オブジェクトの作成時にエラーがスローされていることがわかります。axiom-impl.jar(1.2.12、1.2.13、1.2.7、1.2.5)の異なるバージョンを使用しようとしましたが、それでも同じエラーが発生します。

     public static String testFunction(String testData) throws Exception {
     System.out.println("Entered");
    //Create a service client
    ServiceClient client = new ServiceClient();
    System.out.println("Before calling set end point");
    //Set the endpoint address
    client.getOptions().setTo(new EndpointReference(EPR));
    System.out.println("After calling set end point");
    System.out.println("getPayload(url)="+getPayload(testData));
    //Make the reqest and get the response
    OMElement resp = client.sendReceive(getPayload(testData));
    //Extract the URL and return
    return extractUrl(resp);
}
4

4 に答える 4

2

これを解決するには、3つの個別の公理jar(axiom-impl-1.2.13.jar、axiom-dom-1.2.13.jar、およびaxiom-api-1.2.13.jar)をすべてaxiom.jarに置き換えます。

于 2012-05-30T09:38:49.710 に答える
1

上記のjarを使用すると、別のエラーが発生しました。java.lang.ClassCastException: java.lang.ClassCastException: org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory

各jarのバージョンを1.2.14に上げる必要がありました

于 2013-06-21T08:19:31.987 に答える
0

同じエラーが発生しました。個々の axiom jar ( axiom-impl-1.2.13.jar 、 axiom-dom-1.2.13.jar 、および axiom-api-1.2.13.jar ) を axiom.jar だけに置き換えましたが、エラーはまだ発生しています。

エラーの根本原因は、META-INF/axiom.xml ファイルの場所でした。私の場合、J2EE サーバー コンテナーの XMLParser は、jar ファイル内でローカライズされている場合、axion.xml ファイルを開くことができません。

META-INF/axiom.xml を WEB-INF/classes/META-INF/axiom.xml にコピーする必要がありました。

于 2013-08-05T10:08:20.067 に答える