【问题标题】:Add-on is not responding. Wait or cancel?加载项没有响应。等待还是取消?
【发布时间】:2015-02-08 21:19:10
【问题描述】:

我正在尝试使用 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 实例上安装我的插件并启动它时,加载项的内容永远不会停止加载,我收到以下消息:

插件没有响应。等待还是取消?

我试图找到问题,但我找不到,有人可以帮忙吗?

【问题讨论】:

    标签: cloud confluence add-on atlassian-connect


    【解决方案1】:

    所有 Atlassian Connect 插件都需要加载 all.js Javascript 资源,因此它可以在您的插件和主机环境之间建立桥梁。装载机坐在那里,等待建立桥梁。这意味着您不包括all.js

    一个例子:https://bitbucket.org/atlassian/whoslooking-connect/src/9066821fe168737b94d5b1e8ad520befb200ec99/app/views/poller.scala.html?at=master#cl-43

    如果这不能解决您的问题,请仔细检查浏览器控制台是否有错误。它可能会提示问题所在。还要检查网络选项卡(可能需要重新加载)以确保所有资源都已加载。

    默认情况下,某些框架还会发出 X-Frame-Origin: SAMEORIGIN 标头,导致浏览器永远不会加载 iframe 的内容。 atlassian-connect-play 不应该是这种情况。

    【讨论】:

    • 是的,必须把它放在头上:&lt;script type="text/javascript" src="https://bitbucket.org/atlassian-connect/all.js"&gt;&lt;/script&gt;
    • 感谢您的洞察力!我最终使用的 url 是 connect-cdn.atl-paas.net/all.js - 这些教程都在 hbs 模板中引用了一个名为 hostScriptUrl 的变量。如果您运行其中一个示例并查看 hostScriptUrl 解析为什么,它的 https://connect-cdn.atl-paas.net/all.js
    【解决方案2】:

    感谢您的回复:)

    我在描述符中指定的 url 无效。 confluence 不接受简单的“/”或空 url “”,因此我不得不将其更改为“/home”并更改我的路由文件。

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 1970-01-01
      • 2013-11-11
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 2015-08-05
      相关资源
      最近更新 更多