【发布时间】:2017-09-20 20:24:30
【问题描述】:
我正在研究计量单位开源库,我使用的maven依赖是:
<dependency>
<groupId>tec.units</groupId>
<artifactId>unit-ri</artifactId>
<version>1.0.2</version>
</dependency>
它实现了 JSR-363。当我尝试如下使用它时:
ServiceProvider provider = ServiceProvider.current();
结果是:
Exception in thread "main" java.lang.IllegalStateException: No measurement ServiceProvider found.
谁能告诉我怎么回事?
【问题讨论】:
-
我不知道框架,但是你不应该自己设置ServiceProvider吗? ServiceProvider.available() 返回什么?从unitsofmeasurement.github.io/unit-api/site/apidocs/javax/… 读取 current() 将在没有当前 Provider 时抛出 IllegalStateException。
-
正如我在 :link 中看到的,它只是调用 ServiceProvider.current().getUnitFormatService().getUnitFormat() 并且代码工作正常,当我调试代码时,它似乎将使用 ServiceLoader.load(ServiceProvider.class) 来加载 ServiceProvider 本身。
-
能否请您分享错误堆栈跟踪
-
@Saurabh,它是这样的:线程“main”java.lang.IllegalStateException中的异常:未找到测量ServiceProvider。在 javax.measure.spi.ServiceProvider.current(ServiceProvider.java:157) 在 UnitOfMeasure.com.sap.kfp.App.main(App.java:18)
-
是错误的开始......还是唯一的错误