Дополнение не отвечает. Подождать или отменить?

Я пытаюсь сделать простую надстройку HelloWorld, используя atlassian-connect-play-java:

Мой контроллер:

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

Мой файл index: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 и запускаю его, содержимое дополнения никогда не перестает загружаться, я получаю следующее сообщение:

Дополнение не отвечает. ждать или отменить?

Я пытался найти проблему, но не смог, может кто-нибудь помочь?


person Balkis Khouni    schedule 08.02.2015    source источник


Ответы (2)


Все надстройки Atlassian Connect требуют загрузки ресурса all.js Javascript, чтобы он мог создать мост между надстройкой и хост-средой. Загрузчик сидит там и ждет, пока мост будет установлен. Это означает, что вы не включаете all.js.

Пример выполнения: https://bitbucket.org/atlassian/whosooking-connect/src/9066821fe168737b94d5b1e8ad520befb200ec99/app/views/poller.scala.html?at=master#cl-43

Дважды проверьте консоль вашего браузера на наличие ошибок, если это не решит ваши проблемы. Скорее всего, это подскажет, в чем проблема. Также проверьте вкладку сети (возможно, с перезагрузкой), чтобы убедиться, что все ваши ресурсы загружены.

Некоторые фреймворки также по умолчанию выдают заголовок X-Frame-Origin: SAMEORIGIN, из-за чего браузер никогда не загружает содержимое iframe. Этого не должно быть в случае с atlassian-connect-play.

person Travis    schedule 09.02.2015
comment
Ага, надо было вбить это в голову: <script type="text/javascript" src="https://bitbucket.org/atlassian-connect/all.js"></script> - person Nate Cook; 04.12.2015

Благодарю за ваш ответ :)

URL-адрес, который я указал в дескрипторе, недействителен. Простой «/» или пустой URL-адрес «» не был принят слиянием, поэтому мне пришлось изменить его на «/ home» и также изменить файл маршрутов.

person Balkis Khouni    schedule 12.02.2015