1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/rpgmakervx-codecat

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

#CodeCat ##Краткое описание codecat — это промежуточное программное обеспечение HTTP-сервера, которое имитирует функциональность Tomcat. В настоящее время реализованы следующие возможности: горячее развертывание, горячее удаление, перенаправление маршрутов. ##Быстрый старт

  • cd /home/xxx/codecat/bin Переход в директорию bin проекта

  • sudo chmod +x startup.sh Измените права доступа к скрипту запуска, чтобы он мог выполняться

  • redis-server Запустите сервер Redis, а также можно запустить клиентскую часть для реального отслеживания состояния ключей и значений, используйте команду hgetall codecat, чтобы просмотреть все отображаемые пути портов.

  • ./startup 8080 Запустите сервис CodeCat, обратите внимание, что этот шаг попытается временно отключить вашу системную защиту от вторжений (тестовый режим), последний параметр — это порт, который вы можете указать для вашего сервиса CodeCat.

  • Откройте браузер и перейдите по адресу localhost:8080 (или тот, который вы выбрали), чтобы получить доступ к корневому каталогу сервиса

  • cp codecat-api.jar /home/xxx/ваш_проект Копируйте файл codecat-api.jar из папки bin в ваш проект, при этом убедитесь, что имя вашего проекта указано правильно во время сборки, так как это будет являться именем корневого каталога вашего проекта.Создайте новый класс, расширяющий класс BasicHttpHandler, и реализуйте метод service. Возвращаемое значение этого метода будет выводиться на страницу, а сам класс следует аннотировать с помощью @Path("/xxx"), где /xxx — это маршрут запроса, который обрабатывает данный класс. Пример кода представлен ниже:```java @Path("/timer") public class TimerHandler extends BasicHttpHandler {

    @Override public Object service(Object msg) { String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); return "

    " + timestamp + "

    "; } }

Здесь представлен пример класса, который возвращает текущее время системы.
- **Установите JAR-файл в папку codecat/apps; здесь есть небольшая проблема: первый раз установка может завершиться ошибкой, удалите его и повторите попытку**. Предположим, что ваш JAR-файл называется `index.jar`, тогда вы сможете получить доступ к текущему времени системы через адрес [localhost:8080/index/timer]()## Сравнение с Tomcat
Теплое удаление приложения в Tomcat невозможно, поэтому концепция теплого удаления была внедрена в **Codecat**. Внутри **Codecat** используется прокси, который по умолчанию проксирует сервер при запуске. Каждый раз, когда пользователь помещает новый JAR-файл в папку `codecat/apps`, **Codecat** читает соответствующие классы внутри JAR-файла, запускает новый порт и регистрирует его через прокси. Перед запуском новые классы загружаются в новый сервер.Имя JAR-файла используется как корневой каталог проекта, что позволяет каждому JAR-файлу иметь свой уникальный реальный порт сервера. Прямое восприятие пользователя заключается в том, что порт доступа не меняется. Когда пользователь удаляет JAR-файл, **Codecat** закрывает соответствующий ему порт на основе имени JAR-файла, тем самым делая невозможным доступ к этому JAR-файлу, чтобы достичь цели удаления.

## Оставшиеся дефекты BUG
- **1.** При первой загрузке JAR-файла содержимое JAR может не быть прочитано.
- **2.** При удалении JAR-файла, требуется использовать `rm -f xxx.jar`, графический метод удаления или клавиша Delete не работают.
- **3.** Модуль API пользователя BasicHttpHandler ещё не завершён, не были созданы обёртки для классов HttpRequest, HttpResponse, HttpSession.## Примечание:
### Функционал отслеживания изменений файлов в директориях использует стороннюю библиотеку [JNotify](http://my.oschina.net/fuckmylife0/blog/324967)
### Благодарность
Благодарю за предоставленные технические идеи [Ли Ао](https://github.com/andilyliao)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

auto deploy plugins for server Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/rpgmakervx-codecat.git
git@api.gitlife.ru:oschina-mirror/rpgmakervx-codecat.git
oschina-mirror
rpgmakervx-codecat
rpgmakervx-codecat
master