播放2.2.1插件未加载

时间:2013-12-03 09:31:14

标签: java playframework playframework-2.2

我正在编写一个插件,它在扩展BeanPersistAdapter类的Solr服务器上构建索引。我实际上将代码移动为一个插件,从那时起它就不再起作用了。我没有对它做任何改动。

我的插件位于app / com.myplugin中,但没有扩展play.Plugin的类,因为我的主要功能是在BeanPersistAdapter isRegisterFor(Class<?> clazz)扩展postInsert(BeanPersistRequest<?> request)的类中实现的。{ 1}},...方法。 我使用5000:com.myplugin

在conf / play.plugins文件中使我的应用程序知道该插件

编辑:它必须是5000:com.myplugin.Plugin(即扩展播放的类。需要指定插件)

任何人都可以告诉我要做什么,这样我就不会得到这个例外

play.api.PlayException: Cannot load plugin[Plugin [com.myplugin]
cannot been instantiated.]
        at play.api.WithDefaultPlugins$$anonfun$plugins$1$$anonfun$apply$9.apply
(Application.scala:159) ~[play_2.10.jar:2.2.1]
        at play.api.WithDefaultPlugins$$anonfun$plugins$1$$anonfun$apply$9.apply
(Application.scala:128) ~[play_2.10.jar:2.2.1]
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike
.scala:244) ~[scala-library.jar:na]
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike
.scala:244) ~[scala-library.jar:na]
        at scala.collection.immutable.List.foreach(List.scala:318) ~[scala-libra
ry.jar:na]
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
 ~[scala-library.jar:na]
Caused by: java.lang.ClassNotFoundException: com.myplugin
        at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.7.0_40]
        at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.7.0_40]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0
_40]
        at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.7.0_40]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.7.0_40]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.7.0_40]

1 个答案:

答案 0 :(得分:1)

我认为你的班级看起来像是:

public class myplugin extends BeanPersistAdapter {
.....
}

在引擎盖下播放框架加载插件:

val plugin = classloader.loadClass(className).getConstructor(classOf[play.Application]).newInstance(new play.Application(this)).asInstanceOf[Plugin]

因此,您的myplugin不是Plugin的实例。您需要实现接口play.api.Plugin

public class myplugin extends BeanPersistAdapter implements play.api.Plugin {

}