一千萬個為什麽

搜索

GAE JCache NumberFormatException,我需要編寫Java來避免嗎?

下面的代碼在此行中生成NumberFormatException:

val cache = cf.createCache(Collections.emptyMap())

你看到有什麽錯誤嗎?
我是否需要編寫Java版本以避免這種情況,或者是否存在Scala方式?

...
import java.util.Collections
import net.sf.jsr107cache._

object QueryGenerator extends ServerResource {
  private val log = Logger.getLogger(classOf[QueryGenerator].getName)
}

class QueryGenerator extends ServerResource {
  def getCounter(cache:Cache):long = {
      if (cache.containsKey("counter")) {
        cache.get("counter").asInstanceOf[long]
      } else {
        0l
      }
    }

  @Get("html")
  def getHtml(): Representation = {
    val cf = CacheManager.getInstance().getCacheFactory()
    val cache = cf.createCache(Collections.emptyMap())

    val counter = getCounter(cache)

    cache.put("counter", counter + 1)

    val q = QueueFactory.getQueue("query-generator")
    q.add(TaskOptions.Builder.url("/tasks/query-generator").method(Method.GET).countdownMillis(1000L))

    QueryGenerator.log.warning(counter.toString)

    new StringRepresentation("QueryGenerator started!", MediaType.TEXT_HTML)
  }
}

謝謝!

最佳答案

我懷疑在 getCounter 的調用中發生了異常。當您嘗試將String轉換為數字時,拋出 NumberFormatException ,並且該String不包含可識別的數字。

轉載註明原文: GAE JCache NumberFormatException,我需要編寫Java來避免嗎?