[英]java.lang.NoClassDefFoundError: Could not initialize class
我在运行一些测试时只得到一些错误java.lang.NoClassDefFoundError
。
这是设置:测试是用Scala和Scala和Java编写的。 使用蚂蚁和常春藤。
Order.scala看起来像这样:
object Order extends JdbcEnabled {
val orderServiceClientIpAddress = Network.localIpAddress
val PersonalOffersSaleId = "123"
lazy val checkoutClient = new CheckoutClientImpl(YamlConfigFactory.loadConfig(
this.getClass.getClassLoader.getResourceAsStream("core_config.yaml")
).getRequiredSubConfig("core").getRequiredSubConfig(Environment.HostEnv))
val storeList = new JLinkedList[Store]()
storeList.add(OrderHelper.getSelectedStore)
var skuList = OrderHelper.getAvailableSkus
val skusForInternationalOrders = skuList
def createOrder(){...}}
TestNG运行了许多测试。 有时所有测试都没有任何问题,但有时它们会因此异常而失败。
这是一个测试如何在失败时调用Order api的片段。
val orderNumber = Order.createOrder()
这是测试失败时的整个堆栈跟踪:
java.lang.NoClassDefFoundError: Could not initialize class com.api.Order$
at com.CreateOrder.setUpOnce(CreateOrder.scala:35)
该类中的第35行,CreateOrder.scala是:
val orderNumber = Order.createOrder()
这可能不是你的整个类路径,你必须在某处有一个缺失类的名称(可能在'由...引起'之后)。 也许TestNG可以配置为显示完整的堆栈跟踪。
无论如何,初始化器错误意味着'对象Order'在其构造函数中引发了异常,所以看看你在那里使用的是什么:可能缺少JDBC类? 或者您通过类加载器检索的配置文件?
您的订单类似乎是一种代理方式。 它没有初始化。
通常,当您的单例对象中存在未捕获的异常时,会发生此类问题。 尝试在里面放一个try catch子句来获取错误的来源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.