java.lang.NumberFormatException:对于输入字符串:" "(运行"sbt test"时出错)



在我的本地Mac OS(Mountain Lion(上,我一直运行得很好sbt test并且使用Play 2.3.x,Scala(2.10.x(编译/通过了测试。我本地的Java版本是"1.8.0_131"。

重新映像我的Mac OS X(10.12.3(后,当对相同的代码库(Play,Scala,Java版本仍然相同(运行"sbt test"时,我开始遇到非常奇怪的错误。

可能,这可能与我的Mac升级无关,但这是我目前能想到的唯一变量(更改(。

如果有人能给我一个关于可能原因的快速指示,我将不胜感激?

错误堆栈跟踪如下所示

[error]    NumberFormatException: : For input string: ""  (ProxyUtils.java:159)
[error] com.ning.http.util.ProxyUtils.createProxyServerSelector(ProxyUtils.java:159)
[error] com.ning.http.client.AsyncHttpClientConfig$Builder.build(AsyncHttpClientConfig.java:1132)
[error] play.api.libs.ws.ning.NingAsyncHttpClientConfigBuilder.build(NingAsyncHttpClientConfigBuilder.scala:37)
[error] play.api.libs.ws.ning.NingWSAPI.buildAsyncClientConfig(NingWS.scala:563)
[error] play.api.libs.ws.ning.NingWSAPI.newClient(NingWS.scala:520)
[error] play.api.libs.ws.ning.NingWSAPI$$anonfun$client$1.apply(NingWS.scala:543)
[error] play.api.libs.ws.ning.NingWSAPI$$anonfun$client$1.apply(NingWS.scala:540)
[error] play.api.libs.ws.ning.NingWSAPI.client(NingWS.scala:538)
[error] play.api.libs.ws.ning.NingWSAPI.url(NingWS.scala:553)
[error] play.api.libs.ws.WS$.url(WS.scala:129)

如果有人能给我一个关于原因的快速指示,我将不胜感激?

您只需要查看堆栈跟踪。它可以给你一个原因的"指针"。

例如,在这里,原因在异常消息中指示,即:

对于输入字符串:">

这表示一行代码试图解析不包含任何内容的字符串,并抛出异常以指示从字符串到数字的转换失败

造成这种情况的可能原因是应用程序在某处检索了一些数据,并且在计算机重新映像后被更改。通常,纠正此问题的一种方法是重新安装应用程序

正如@HatsuPointerKun已经指出的那样。您仍然没有提供足够的信息。

但也许这会有所帮助。似乎,在代码库的某个点,Web应用程序通过播放WS发送请求。 因为它的 URL 有问题,所以我假设存在一些端口问题(我可能撒错了(。

这是所提供的信息所能走得最远的。我可以建议您在 Stacktrace 向您显示的位置调试代码并调试代码以查看导致问题的值。您可以更深入地查看堆栈,并查看组件在哪里使用它。

希望这有帮助。

我知道问题已经解决。将我的解决方案粘贴到此处,以防其他人遇到相同的问题。

在我的案例中发生之前,我已经看到了此错误,因为该项目使用的是应该在buildinfo.properties中设置的内部版本号。它被设置为空,因此设置内部版本号后出现 sbt 编译错误,错误消失了

cat buildinfo.properties 
#Tue Nov 24 21:12:02 EST 2020
buildnumber=
[info] Set current project to dummy-project (in build file:/home/mly/workspace/dummy-project)
java.lang.NumberFormatException: For input string: ""                                   
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:229)
at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
at sbtbuildinfo.BuildInfoPlugin$.readProp$1(BuildInfoPlugin.scala:33)
at sbtbuildinfo.BuildInfoPlugin$.buildNumberTask(BuildInfoPlugin.scala:39)
at sbtbuildinfo.BuildInfoPlugin$$anonfun$buildInfoDefaultSettings$5.apply(BuildInfoPlugin.scala:89)
at sbtbuildinfo.BuildInfoPlugin$$anonfun$buildInfoDefaultSettings$5.apply(BuildInfoPlugin.scala:89)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[error] (dummy-project/*:buildInfoBuildNumber) java.lang.NumberFormatException: For input string: ""

当内部版本号集编译错误消失时

cat buildinfo.properties 
#Tue Nov 24 21:12:02 EST 2020
buildnumber=123

最新更新