Search code examples
jqueryscalaplayframeworkwebjars

Play Framework jquery webjar integration not working


I try to deploy current version of my project. I have webjars and jquery integreted.

build.sbt

...
libraryDependencies ++= Seq(
    "org.webjars" %% "webjars-play" % "2.3.0-3",
     "org.webjars" % "jquery" % "2.1.3"
)
...

login.scala.html

...
</body>
    <script type='text/javascript' src='@routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))'></script>
...

routes

...
GET     /assets/*file  controllers.Assets.at(path="/public", file)
GET     /webjars/*file controllers.WebJarAssets.at(file)

When I try to start, I get this exception

play.api.Application$$anon$1: Execution exception[[MultipleMatchesException: Multiple matches found for jquery.min.js. Please provide a more specific path, for example by including a version number.]]
at play.api.Application$class.handleError(Application.scala:296) ~[com.typesafe.play.play_2.11-2.3.8.jar:2.3.8]
at play.api.DefaultApplication.handleError(Application.scala:402) [com.typesafe.play.play_2.11-2.3.8.jar:2.3.8]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$14$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:205) [com.typesafe.play.play_2.11-2.3.8.jar:2.3.8]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$14$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:202) [com.typesafe.play.play_2.11-2.3.8.jar:2.3.8]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [org.scala-lang.scala-library-2.11.5.jar:na]
Caused by: org.webjars.MultipleMatchesException: Multiple matches found for jquery.min.js. Please provide a more specific path, for example by including a version number.
at org.webjars.WebJarAssetLocator.getFullPath(WebJarAssetLocator.java:201) ~[org.webjars.webjars-locator-0.19.jar:na]
at org.webjars.WebJarAssetLocator.getFullPath(WebJarAssetLocator.java:167) ~[org.webjars.webjars-locator-0.19.jar:na]
at controllers.WebJarAssets.locate(WebJarAssets.scala:49) ~[org.webjars.webjars-play_2.11-2.3.0-3.jar:1.0.2]
at views.html.application.login$.apply(login.template.scala:142) ~[myprog.myprog-1.0.2.jar:1.0.2]
at controllers.Application$$anonfun$loginForm$1.apply(Application.scala:30) ~[myprog.myprog-1.0.2.jar:1.0.2]

Solution

  • The WebJar locator is finding multiple files in the classpath that match the jquery.min.js search path. You should check your classpath to see what else contains a file that would match that query and the remove whatever is causing the duplicate file.