В то время как я первоначально пытался сделать выбор для всех документов с местоположением внутри определенного многоугольника, используя функцию ST_WITHIN в CosmosDB - я понял, что мне нужно проверить расположение в памяти в отношении многоугольника (также в памяти), а не выберите данные из CosmosDB на основе параметров геолокации.
Однако я продолжал пытаться использовать функцию ST_WITHIN в CosmosDB, передавая ей оба параметра, что было неверно.
Вместо этого я использовал библиотеку (GeoCordinate.NetCore), чтобы проверить, была ли точка внутри многоугольника.
Не было никакой необходимости использовать функции геолокации CosmobDB.
Эта статья немного устарела , но все еще актуальна (включая раздел, озаглавленный «Как отлаживать апплеты в подключаемом модуле Java»).
Изменить: возможно, лучший способ чтобы получить трассировку стека, нужно использовать консоль плагина Java . Если вы нажмете «t» в этом окне, вы увидите следующее:
Распечатывает всю существующую цепочку групп. Первая показанная группа - это Группа основной. ac означает активный счетчик; Это общее количество активных потоков в группе потока и ее дочернем потоке групп. agc означает активная группа рассчитывать; это количество активных дочерние группы потоков группы потоков. pri означает приоритет; это приоритет группы потоков. Следующий Группа основная, другие группы потоков будут отображаться как Группа, где имя - это URL-адрес, связанный с апплетом. Отдельные списки тем будут показать имя потока, поток приоритет, жив, если поток жив или уничтожается, если поток находится в процесс уничтожения, а демон если поток является потоком демона.
Другая команда, которую я чаще всего использовал с этой консоли, - это уровень трассировки от 0 до 5:
Это устанавливает параметры уровня трассировки, как описано в следующем разделе, Трассировка и ведение журнала.
На этой странице вы увидите, что уровни выглядят следующим образом:
- 0 - выключено
- 1 - базовое
- 2 - сеть, кэш и базовый
- 3 - безопасность, сетевое и базовое
- 4 - расширение, безопасность, сетевое и базовое
- 5 - LiveConnect, расширение, безопасность, сеть, временное и базовое
Все эти инструменты могут быть весьма полезны, когда вы ' Вы пытаетесь разгадать, что в мире взялось в голове ваших апплетов. Я знаю, что они работали на меня.
Неперехваченные исключения отправляются на консоль. Вы также можете использовать System.out для написания собственных сообщений в консоли. Чтобы просмотреть результаты, вам необходимо открыть консоль, щелкнув правой кнопкой мыши значок Java на панели задач и открыв консоль (обратите внимание, что это отличается от виртуальной машины Microsoft).
Для правильной отладки апплетов вы можете настроить Eclipse для отладки апплетов , Щелкните правой кнопкой мыши исходный файл апплета и выберите «Отладка как апплет». (Если у вас есть параметры для апплета, вам необходимо их настроить.) Затем вы можете пошагово выполнять код апплета, как если бы вы выполняли отладку любого другого кода Java.
Следы стека от неперехваченных исключений будут отображаться на консоли. Это можно включить из Панели управления Java («Дополнительно»> «Консоль Java»> «Показать консоль»), или в некоторых браузерах есть различные параметры или плагины для его включения.
Вы можете подключить отладчик к запущенному процессу PlugIn.
Возможно, лучший способ вообще не отлаживать. Напишите тесты. Напишите код, который не связан с ненужными предположениями - например, что вы работаете как апплет. К сожалению, большая часть кода примеров графического интерфейса пользователя / апплета написана очень плохо.
Помимо очевидного использования консоли Java и средства просмотра апплетов, начиная с Java 6 с обновлением 7, вы можете использовать VisualVM , который поставляется с JDK (JDK_HOME / bin / visualvm). Это позволяет вам просматривать трассировку стека каждого потока и даже просматривать все экземпляры объектов.
AppletViewer очень удобен, вы можете выполнить «Запуск от имени / Java-апплет» из Eclipse для запуска или «Отладка как / Java-апплет» для отладки классов ваших апплетов.
Однако иногда для отладки некоторых вещей, связанных с безопасностью, среда плагина браузера слишком отличается от appletviewer. Вот что вы можете сделать для эффективной отладки апплетов в браузере:
1) Получите отладочную информацию для двоичных файлов
Сделайте резервную копию файлов .jar из JRE_HOME / lib
(Загрузите и) Установите JDK для той же версии как ваш JRE.
Скопируйте файлы .jar из JDK_HOME / jre / lib в JRE_HOME / lib
Файлы внутри JDK были скомпилированы с включенной отладочной информацией (информация о номере строки исходного кода, имена переменных и т. Д.) И файлы JRE нет этой информации.
Без этого вы не сможете осмысленно войти в код основного класса в вашем отладчике.
2) Включите отладку для подключаемого модуля Java.
Перейдите в Панель управления Java / Java / Параметры времени выполнения Java / Просмотр / {{1} } Пользователь / Параметры времени выполнения
И добавьте параметры для включения отладки. Примерно так:
-Djava.compiler=NONE -Xnoagent -Xdebug -Xrunjdwp:transport=dt_socket,address=2502,server=y,suspend=n
Интересные параметры: порт (используя здесь 2502, вы можете использовать практически любой свободный порт, просто запишите его на потом) и приостановка - если вам нужно отладить апплет Запуск, загрузка классов и т. д. установите для этого параметра значение «y».Таким образом, при доступе к странице апплета браузер будет зависать, поскольку JVM немедленно приостанавливается в ожидании подключения отладчика.
3) Используйте вашу любимую среду IDE для удаленной отладки подключаемого модуля Java
В Eclipse, например, выберите «Выполнить / Отладка конфигураций ... / Удаленное приложение Java»
Нажмите кнопку «Создать».
Убедитесь, что тип подключения - «Socket Attach», выберите localhost в качестве хоста, если ваш браузер является локальным, и порт, который вы выбрали ранее (2502 в примере).
Возможно, вам придется включить src.zip в ваш JDK на вкладке «Источники», чтобы были доступны исходные коды базового класса Java.
Сохраните конфигурацию, и как только ваш браузер запустит плагин (с приостановленной JVM или нет), запустите удаленный отладчик для подключения к JVM плагина с открытым проектом, содержащим ваши исходные коды апплета.