尝试使用Play FBConnect模块时遇到以下NullPointerException异常:
Caused by: java.lang.NullPointerException
at tags.fbconnect.FBConnectTags._button(FBConnectTags.java:26)
at tags.fbconnect.FBConnectTags$_button.call(Unknown Source)
at /app/views/main.html.(line:17)
at play.templates.GroovyTemplate.render(GroovyTemplate.java:203)
这似乎是发生的行:https://github.com/rbamba/play-fbconnect/blob/master/app/tags/fbconnect/FBConnectTags.java#L26
不幸的是,我对Play模块不够熟悉,无法自己调试。
编辑:作为回应,我相信fbconnect模块已正确配置,因为这是在日志中较早地报告的:
13:12:13,225 INFO ~ Module fbconnect is available (/home/****/play-1.1.1/modules/fbconnect-0.3)
edit2:实际上,我已经在本地计算机上完成了这一步,但是仍然在生产服务器上获得了该NPE。
最佳答案
我看不到插件代码有什么特别错误的地方。为了解释一些正在发生的事情,
// the line of code with the error
String url = Play.plugin(FBConnectPlugin.class).session().getLoginUrl(scope);
让我们分解一下
Play.plugin(FBConnectPlugin.class)
此行要求Play从Play中配置的插件列表中返回初始化的插件。如果未设置插件,则返回null。这是错误的最可能原因。
.session()
这只是从FBConnectPlugin获取会话对象,该对象是静态创建的对象,因此不会为null。
.getLoginUrl(scope);
这将建立URL。不会调用此方法,否则您会在堆栈跟踪中看到它。
因此,问题是您没有正确配置插件。再次检查文档以确保其有问题。或者,您可能想签出FbGraph模块。我几天前安装了这个程序,并且已经安装并运行了一个Facebook应用程序。这非常简单,并且文档非常出色。
答案有些long昧,但是正如您所说的,您不了解模块的工作原理,我认为值得解释。
关于java - 在Play Framework中使用fbconnect模块获取NPE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4879977/