我正在编写一个插件,它在扩展BeanPersistAdapter
类的Solr服务器上构建索引。我实际上将代码移动为一个插件,从那时起它就不再起作用了。我没有对它做任何改动。
我的插件位于app / com.myplugin中,但没有扩展play.Plugin
的类,因为我的主要功能是在BeanPersistAdapter
isRegisterFor(Class<?> clazz)
扩展postInsert(BeanPersistRequest<?> request)
的类中实现的。{ 1}},...方法。
我使用5000:com.myplugin
编辑:它必须是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]
答案 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 {
}