更新到SoapUI 5.2.0后出现ClassNotFoundException

27

更新到SoapUI 5.2.0之后,我遇到了

15:58:00,756 ERROR [SoapUI] An error occurred [com.eviware.soapui.plugins.auto.factories.AutoImportMethodFactory], see error log for details
java.lang.ClassNotFoundException: com.eviware.soapui.plugins.auto.factories.AutoImportMethodFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.eviware.soapui.plugins.LoaderBase.loadAutoFactories(LoaderBase.java:96)
    at com.eviware.soapui.plugins.LoaderBase.loadFactories(LoaderBase.java:64)
    at com.eviware.soapui.plugins.PluginLoader.loadPluginFactories(PluginLoader.java:129)
    at com.eviware.soapui.plugins.PluginLoader.loadPlugin(PluginLoader.java:92)
    at com.eviware.soapui.plugins.PluginLoader.loadPlugin(PluginLoader.java:42)
    at com.eviware.soapui.plugins.PluginManager.doInstallPlugin(PluginManager.java:127)
    at com.eviware.soapui.plugins.PluginManager.access$600(PluginManager.java:38)
    at com.eviware.soapui.plugins.PluginManager$LoadPluginsTask.computeSequentially(PluginManager.java:406)
    at com.eviware.soapui.plugins.PluginManager$LoadPluginsTask.compute(PluginManager.java:363)
    at com.eviware.soapui.plugins.PluginManager$LoadPluginsTask.compute(PluginManager.java:368)
    at com.eviware.soapui.plugins.PluginManager$LoadPluginsTask.compute(PluginManager.java:351)
    at java.util.concurrent.RecursiveTask.exec(Unknown Source)
    at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
    at java.util.concurrent.ForkJoinWorkerThread.execTask(Unknown Source)
    at java.util.concurrent.ForkJoinPool.scan(Unknown Source)
    at java.util.concurrent.ForkJoinPool.work(Unknown Source)
    at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

当我启动 "Launch TestRunner" 时,SoapUI 5.2.0似乎存在一些加载某些插件的问题。

有任何想法是什么引起的吗?

谢谢


这是在启动时,打开项目时还是运行测试时? - SiKing
自从几个小时前也是这样。我相当确定昨天一切都正常运行。 - Bouke Nijhuis
当我使用“启动测试运行器”运行测试套件时,就会出现这种情况。 - cristiano007
你试过这个吗:http://www.soapui.org/support/support-overview.html - SiKing
经过一番探究,我明白了为什么会发生这种情况,但我仍然没有解决方案。无论如何,以下情况正在发生。它试图加载类AutoImportMethodFactory,因为在com.eviware.soapui.plugins.auto包中有一个带有注释@AutoFactory的类PluginImportMethod。在代码中,它将“PluginImportMethod”翻译为“AutoImportMethodFactory”。最大的问题仍然存在:为什么以前它能够工作? - Bouke Nijhuis
4个回答

39
我在使用Soap-Ui 5.2(OpenSource, 64b, Windows)版本时遇到了同样的问题。当使用Testrunner时,它会给出相同的错误。我注意到5.2添加了这些新的插件,并且将它们安装到您的个人文件夹下,路径为c:\user\*YourUserName*\.soapuios\plugins。该文件夹包含以下jar文件:soapui-swagger-plugin-2.1.3-dist、ready-uxm-plugin-1.0.1-dist和ready-mqtt-plugin-dist。
在我的当前项目中,我不需要使用那些插件,所以我只是将.soapuions文件夹重新命名为NOT.soapuios。
然后我从SoapUi重新启动testrunner,哇,没有AutoImportMethodFactory错误了。
好的,我不确定那些插件是否是根本原因,但我认为这种插件存储在windows用户配置文件夹中并不是一个好主意。例如,在Windows Server环境中,你会遇到很多问题:-)
无论如何,如果有人知道如何重新定位那些插件文件夹(我想将其移动到与Soapui安装在同一文件夹下),就是说是否有在Soapui内部定义此文件夹的设置,我会非常感激:-)
编辑:
刚刚从Github上查看了5.2版本发布说明(#### Released 2015-07-02 ####),其中提到了一个错误修复项: *当您使用testrunner.bat运行测试时,SoapUI无法加载插件,并且当前目录与<SoapUI>\bin不同时发生问题。

2
那只是一个临时的“解决方案”...我们想要使用新的Swagger插件,希望一切都能正常工作...感谢您的帮助。 - cristiano007
7
把那些插件的jar文件复制到你的soap-ui安装文件夹中的bin\ext文件夹里,看看效果如何?我这样做了,像其他在我ext文件夹里的jar文件一样,所有的都没有出现任何错误。好的,我没有使用swagger插件,也不确定它应该如何使用,但你尝试过了吗? - Mikko Leppäaho
我尝试了一下...没有出现任何异常。我还能够导入swagger.json文件。一切似乎都按预期工作。谢谢Mikko。 - cristiano007
1
非常抱歉,无法正确解决在使用“Swagger插件”时遇到的错误。请问你们中有人能够澄清吗?感谢你们的帮助。 - Rao
在我的情况下,SoapUI可能将.soapuios文件夹安装到了错误的位置。大多数应用程序会将这类文件安装到C:\Users\username,但我发现它在我的网络配置文件上(在我的工作机器上是H:\.soapuios)。 - roblogic

4
我使用的是Windows 5.2.1 x64版本,遇到了相同的问题。我尝试将c:\user*YourUserName*.soapuios\plugins文件夹中的文件复制到/bin/ext目录下,但并没有解决我的问题。于是我将c:\user*YourUserName*.soapuios\plugins文件夹重命名为c:\user*YourUserName*.soapuios\plugins.backup(这样SOAP UI就找不到它了),重新启动了SUI,现在我没有再看到那些错误了。我认为我可能没有访问插件的权限,但目前我也没有使用这些插件。

我没有使用Windows管理员账户运行,这可能与此有关。


这对我来说也是在Windows 10 x64上使用SoapUI 5.3.0的最佳解决方案。 - Serge Rogatch

2

我遇到了同样的问题,而且我也想使用swagger插件。当我以管理员身份运行soapui时,问题得到了解决,因此我认为这与访问和执行所需的JAR文件来加载插件有关。


-2

您可以解决您的问题(适用于上述任何版本的SoapUI)只需将原始文件夹“plugins”重命名为“plugins_NOTUsed”(或其他任何名称)即可。您可能会想,仅通过重命名此文件夹如何解决实际问题-为了解释这一点,这只是为了在运行时强制隐藏默认插件,因此问题不再出现。


这个临时解决方案也在smartbear(双关语)论坛上展示此处,但它并不能解决问题。 - coz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接