You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala/Play无法找到自定义库及https.port配置疑问求助

Scala类路径与配置属性问题排查

问题背景

  • 报错信息:

play.api.PlayException: Execution exception[[InjectionException: Injection error, interface my.package.ServiceLoggerBuilder not found]]

  • 已在build.sbt中引入依赖:
libraryDependencies ++= Seq(
  "my.package" %% "service-common" % "2.0.23"
)
  • 确认依赖jar存在于Coursier缓存目录:/home/myuser/.cache/coursier/v1/https/ourdomain.amazonaws.com/maven/common/my/package/service-common_3/2.0.23
  • 已验证sbt输出的类路径包含该jar,但报错依旧;同时发现需要https.port配置属性,疑问:该属性需手动设置还是从启动的pekko-http服务器获取?

问题排查与解答

针对ServiceLoggerBuilder找不到的问题

  1. 检查Scala版本兼容性:缓存中的jar是service-common_3(对应Scala 3版本),确认你的项目Scala版本是否为3.x。如果项目用的是Scala 2.x,要么确保%%能自动匹配对应版本的依赖,要么手动指定如service-common_2.13这类对应Scala 2版本的jar包,跨版本会导致类加载失败。
  2. 验证jar包内容:直接解压缓存目录下的jar文件,查看是否存在my/package/ServiceLoggerBuilder.class文件,确认该trait确实被打包进了依赖库。
  3. 刷新依赖缓存:执行sbt clean reload update命令,强制清理旧缓存并重新拉取依赖,避免缓存损坏导致的类加载异常。

针对https.port配置属性的问题

  • 若pekko-http服务器是手动代码启动:需要手动在配置文件(如application.conf)中设置https.port,或者启动时通过命令行参数(如-Dhttps.port=443)传递,服务器会读取该配置绑定HTTPS端口。
  • 若pekko-http是集成在Play框架中启动:Play会自动读取application.conf里的https.port配置来启动HTTPS服务,无需手动从服务器获取,只需确保配置文件中正确设置该属性即可。

内容的提问来源于stack exchange,提问作者david sundström

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:30:54