我正在尝试使用atlassian-connect-play-java创建一个简单的HelloWorld加载项:
我的控制器:
package controllers;
import views.html.*;
import com.atlassian.connect.play.java.controllers.AcController;
import com.google.common.base.Supplier;
import play.mvc.Controller;
import play.mvc.Result;
public class Application extends Controller {
public static Result index()
{
return AcController.index(home(), descriptor());
}
private static Supplier<Result> descriptor()
{
return new Supplier<Result>()
{
@Override
public Result get()
{
return AcController.descriptor();
}
};
}
private static Supplier<Result> home()
{
return new Supplier<Result>()
{
@Override
public Result get()
{
return ok(index.render("Hello"));
}
};
}
}
我的路线档案:
GET / controllers.Application.index()
GET /assets/*file controllers.Assets.at(path="/public", file)
-> / ac.Routes
我的索引:scala.html文件:
@(message: String)
@main("Welcome to Play") {
<p>@message</p>
}
我的main.scala.html文件:
@(title: String)(content: Html)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
<script src="http://localhost:1990/confluence/atlassian-connect/all.js" type="text/javascript"></script>
<link rel="stylesheet" href="//aui-cdn.atlassian.com/aui-adg/5.4.3/css/aui.css" media="all">
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
<script src="@routes.Assets.at("javascripts/jquery-1.9.0.min.js")" type="text/javascript"></script>
</head>
<body>
<div class="ac-content">
<p>@content</p>
</div>
</body>
</html>
我的atlassian-connect.json文件:
{
"key": "${addonKey}",
"name": "${addonName}",
"description": "Atlassian Connect add-on",
"baseUrl": "${localBaseUrl}",
"vendor": {
"name": "Atlassian",
"url": "http://www.atlassian.com"
},
"authentication": {
"type": "none"
},
"modules": {
"generalPages": [
{
"url": "/",
"key": "test-application",
"location": "system.user",
"name": {
"value": "Test"
}
}
]
},
"scopes": ["READ"]
}
运行我的播放应用程序时,一切正常。
但是当我在Confluence的本地实例上安装我的插件并启动它时,附加组件的内容永远不会停止加载,我收到以下消息:
加载项无响应。等或取消?
我试图找到问题,但我不能,有人可以帮忙吗?
答案 0 :(得分:3)
所有Atlassian Connect加载项都需要加载all.js
Javascript资源,因此它可以在加载项和主机环境之间创建桥接。装载机坐在那里等待建立桥梁。这意味着您不包括all.js
。
如果这不能解决您的问题,请仔细检查浏览器的控制台是否有错误。它可能会暗示问题是什么。还要检查网络选项卡(可能需要重新加载)以确保加载所有资源。
默认情况下,某些框架也会发出X-Frame-Origin: SAMEORIGIN
标头,导致浏览器永远不会加载iframe的内容。这不应该是atlassian-connect-play的情况。
答案 1 :(得分:1)
感谢您的回复:)
我在描述符中指定的url无效。一个简单的&#34; /&#34;或者一个空的网址&#34;&#34;没有被汇合接受所以我不得不把它改成&#34; / home&#34;并改变我的路线文件。