2

我有以下代码

   static {
       wsAuthenticate = WsAuthenticate.Factory.newInstance(); 
    ...
    }

调用

public static final SchemaType type = (SchemaType) 
       XmlBeans.typeSystemForClassLoader(WsAuthenticate.class.getClassLoader(), 
           "schemaorg_apache_xmlbeans.system.sDE164C7F4147229ECE15396F7FA5432D")
       .resolveHandle("wsauthenticate751ftype");

在包含 .xsb 文件的 jar 文件中。我使用了以下 jar 文件

  • xBean1.0.3.jar
  • xmlBeans2.3.0.jar
  • xmlSchema1.4.7.jar

但我面临以下异常:

java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/apache/xmlbeans/SchemaTypeSystem;
    at com.travis.webservices.WsAuthenticate.<clinit>(WsAuthenticate.java:19)
    at com.travis.webservices.WsAuthenticate$Factory.newInstance(WsAuthenticate.java:119)
    at com.mmi.api.ticketvala.TicketWalaMain.<clinit>(TicketWalaMain.java:64)
Exception in thread "main" 

at : 

   XmlBeans.typeSystemForClassLoader(WsAuthenticate.class.getClassLoader(),       "schemaorg_apache_xmlbeans.system.sDE164C7F4147229ECE15396F7FA5432D").resolveHandle("wsauthenticate751ftype");

可能是什么原因以及如何解决?

4

3 回答 3

0

读取 .xlsx 文件时我也遇到了同样的异常

org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
Caused By :java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlBeans.typeSystemForClassLoadern

然后我删除了我的旧 xmlbeans-2.0.jar 并放入了包含此方法的最新xmlbeans-2.3.0.jar ,现在它已解决

于 2014-01-29T07:15:23.017 回答
0

typeSystemForClassLoader方法在 (2.1.0) 版本中引入。查看javadoc检查以前的版本,您会发现此方法丢失。

<dependency>
    <groupId>xmlbeans</groupId>
    <artifactId>xbean</artifactId>
    <version>2.1.0</version>
</dependency>
于 2014-01-22T04:32:00.860 回答
0

添加此依赖项解决了我的问题:

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>ooxml-schemas</artifactId>
        <version>1.3</version>
    </dependency>
于 2018-05-17T13:20:06.223 回答