【发布时间】:2012-10-10 21:28:59
【问题描述】:
我在运行某些测试时遇到错误java.lang.NoClassDefFoundError只有几次。
设置如下: 测试使用 Scala 编写,服务使用 Scala 和 Java。也使用 ant 和 ivy。
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 的 sn-p。
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()
【问题讨论】:
-
我认为这意味着您在 Order 中有一个内部类在初始化期间失败。但这大概是一种 Scalaism。
标签: java scala noclassdeffounderror