0

I'm trying to run SoapUI using a project cloned from github (IntellijJ File -> New -> Project from Version Control) :

git clone https://github.com/SmartBear/soapui.git

Then I'm running maven compile and it goes without errors. But when I try to run the app, I'm getting following error:

15:20:40,429 WARN  [SoapUI] Missing folder [C:\%USERPROFILE%\IdeaProjects\soapui\ext] for external libraries
15:20:40,429 WARN  [SoapUI] Missing folder [C:\%USERPROFILE%\IdeaProjects\soapui\ext] for external libraries
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
    at com.eviware.soapui.config.SoapuiSettingsDocumentConfig$Factory.parse(SoapuiSettingsDocumentConfig.java:59)
    at com.eviware.soapui.DefaultSoapUICore.initSettings(DefaultSoapUICore.java:261)
    at com.eviware.soapui.SwingSoapUICore.initSettings(SwingSoapUICore.java:99)
    at com.eviware.soapui.DefaultSoapUICore.init(DefaultSoapUICore.java:143)
    at com.eviware.soapui.StandaloneSoapUICore.<init>(StandaloneSoapUICore.java:38)
    at com.eviware.soapui.SoapUI$SoapUIRunner.run(SoapUI.java:792)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.RuntimeException: Cannot load SchemaTypeSystem. Unable to load class with name schemaorg_apache_xmlbeans.system.s05EC9A3AACC8687CD214E9B1A496DB91.TypeSystemHolder. Make sure the generated binary files are on the classpath.
    at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:788)
    at com.eviware.soapui.config.SoapuiSettingsDocumentConfig.<clinit>(SoapuiSettingsDocumentConfig.java:20)
    ... 19 more
Caused by: java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.s05EC9A3AACC8687CD214E9B1A496DB91.TypeSystemHolder
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:774)
    ... 20 more

Here's a link to POM: https://github.com/SmartBear/soapui/blob/next/soapui/pom.xml

After reading some similar issues I assume there's something wrong with POM but I cannot tell what. Any hints?

jabba
  • 503
  • 2
  • 6
  • 14

1 Answers1

1

Hi I got a same problem and fixed it.

It was happened here.

settingsDocument = SoapuiSettingsDocumentConfig.Factory.newInstance();

public static final class Factory
{
    public static com.eviware.soapui.config.SoapuiSettingsDocumentConfig newInstance() {
      return (com.eviware.soapui.config.SoapuiSettingsDocumentConfig) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }

root cause is this one.

can not load this class. "org.apache.xmlbeans.XmlBeans.getContextTypeLoader()"

This solution is a adding jar-with-dependencies plugin.

Error when using XmlBeans generated classes

http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies

you has to add two blocks in pom.xml

            <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>fully.qualified.MainClass</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </buid>

and

        <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
    </dependency>