Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法部署Scala web应用程序_Scala_Playframework_Sbt_Guice - Fatal编程技术网

无法部署Scala web应用程序

无法部署Scala web应用程序,scala,playframework,sbt,guice,Scala,Playframework,Sbt,Guice,我正在尝试部署一个使用Play framework和Scala构建的简单web应用程序。应用程序工作正常,当我使用sbt run命令运行应用程序时,但是,当我尝试在本地服务器上使用sbt dist命令部署应用程序时,我收到以下消息 WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.google.inject.internal.cglib.co

我正在尝试部署一个使用Play framework和Scala构建的简单web应用程序。应用程序工作正常,当我使用
sbt run
命令运行应用程序时,但是,当我尝试在本地服务器上使用
sbt dist
命令部署应用程序时,我收到以下消息

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/D:/Scala/SomeDomain/SomeProject/target/universal/SomeProject-1.0-SNAPSHOT/lib/com.google.inject.guice-4.2.2.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Oops, cannot start the server.
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Error injecting constructor, java.io.IOException: Dictionary directory does not exist: D:\Scala\SomeDomain\SomeProject\target\universal\SomeProject-1.0-SNAPSHOT\bin\dict
  at initializer.ServiceInitializer.<init>(ServiceInitializer.scala:11)
  at initializer.ApplicationInitializer.configure(ApplicationInitializer.scala:12) (via modules: com.google.inject.util.Modules$OverrideModule -> initializer.ApplicationInitializer)
  while locating initializer.ServiceInitializer
plugins.sbt

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.0")
addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0")

应用程序的某些组件似乎希望存在一个目录:

java.io.IOException:字典目录不存在:D:\Scala\SomeDomain\SomeProject\target\universal\SomeProject-1.0-SNAPSHOT\bin\dict


确保创建目录,或将丢失的文件添加到您的区域。

hi@cbley,我尝试在Linux(ubuntu)中运行应用程序,我能够通过bin目录中的脚本运行应用程序(我确实收到警告,但没有错误),问题是当我尝试在Windows中部署时。@gokul目录是否存在?预期的文件夹在哪里?也许你应该用
bin\start.bat
(或者不管你的bat文件如何调用)从基本文件夹启动应用程序。当我在Linux中部署应用程序时,我没有创建任何目录。我只是执行shell脚本,而不是
.bat
我还尝试从基本文件夹执行
.bat
,我得到了相同的错误。当我搜索这个问题时,人们说,这可能是因为java版本,但在ubuntu和windows中,我都使用JDK 11.0.6版本。警告是因为java版本,但警告不是问题所在。问题是因为缺少目录,这不是一个可玩的东西,是您的代码(我想)期望目录在那里。
ServiceInitializer.scala
来自哪里?是@cbley,错误是由于项目的ServiceInitializer文件中存在依赖项注入,我已经解决了这个问题,现在我可以在windows中运行应用程序了。
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.0")
addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0")