加载项没有响应。等或取消?

问题描述 投票:1回答:2

我正在尝试使用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
2个回答
3
投票

所有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的情况。


1
投票

感谢您的答复 :)

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

© www.soinside.com 2019 - 2024. All rights reserved.