Как постараться не копировать 40M lib Java в рамках ВОЙНЫ, когда размер ВОЙНЫ 41M?

В ваших скриптах я думаю, что ваш php скрипт работает, а Google Apps Script требуется немного изменить. Так как насчет этой модификации?

Точки модификации:

  1. Когда объект JSON ({"key1": "value1", "key2": "value2"}) отправляется в Web Apps в виде запроса POST, e of [ 115] становится следующим.

    {
      "parameter": {},
      "contextPath": "",
      "contentLength": 36,
      "queryString": "",
      "parameters": {},
      "postData": {
        "type": "application/json",
        "length": 36,
        "contents": "{\"key1\": \"value1\", \"key2\": \"value2\"}",
        "name": "postData"
      }
    }
    

    Таким образом, когда вы хотите извлечь значения из объекта, объект должен быть проанализирован, как var postData = JSON.parse(e.postData.contents). Кажется, что хотя данные отправляются как application/json, объект не анализируется автоматически.

  2. По поводу строки if (headers[i] == "Timestamp"){ в вашем образце нет изображения Timestamp. Я думал, что это может быть Date.

Изменен скрипт:

Пожалуйста, измените его следующим образом.

From:

var row = []; 
// loop through the header columns
for (i in headers){
  if (headers[i] == "Timestamp"){ // special case if you include a 'Timestamp' column
    row.push(new Date());
  } else { // else use header name to get data
    row.push(e.parameter[headers[i]]);
  }
}

To:

var postData = JSON.parse(e.postData.contents);
var row = headers.map(function(e) {return e == "Date" ? new Date() : postData[e]});

Результат:

При запуске вашего php-скрипта значения помещаются в электронную таблицу следующим образом.

enter image description here

Примечание:

  • При изменении сценария веб-приложений Google Apps, пожалуйста, повторно разверните веб-приложения как новая версия. Таким образом, последний скрипт отображается в веб-приложениях.

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я приношу свои извинения.

6
задан kosoant 6 April 2009 в 17:37
поделиться

9 ответов

Я вижу то, что Вы говорите и имели то же разочарование некоторыми нашими веб-приложениями, но для пользы непротиворечивости, я предложил бы, чтобы Вы сохранили вещи как они. При копировании библиотек в каталог кота/lib можно столкнуться с проблемами с системным путем к классу по сравнению с путем к классу веб-приложения.

Путем хранения вещей, поскольку они - Вы, уверены, что Вы развертываете тот же материал в разработке/демонстрации, как Вы работаете. Жизнь сосет, когда Вы вручную настраиваете материал в производстве, или у Вас есть некоторая сумасшедшая ошибка, потому что Вы забыли обновлять XYZ.jar от версии 1.6 до 1.6.1_b33 в производстве, и теперь это ведет себя по-другому, чем, чему Вы верите, тот же самый код демонстрации.

При работе с чем-то достаточно жизненным, чтобы иметь dev/demo/production системы, я думаю, что непротиворечивость является намного больше проблемы, чем .war размер файла.

17
ответ дан 8 December 2019 в 04:55
поделиться

Tomcat имеет, совместно использовал/освободил каталог, который является надлежащим местом для глобальных зависимостей приложений. Однако они будут видимы ко всем приложениям, которые будут влиять на управление зависимостью и могут иметь последствия для вещей как статические переменные. Я не уверен, можно ли настроить что-нибудь лучше в Tomcat.

Альтернатива должна переключиться на более сложный веб-контейнер. Например, Выпуск Сообщества Сервера приложений WebSphere (синим промытая версия Geronimo) поддерживает библиотеки на актив. Другие свободные и коммерческие серверы поддерживают это, также. Я знаю, что Сервер приложений WebSphere делает и я вполне уверен, можно сделать это в Glassfish.

1
ответ дан 8 December 2019 в 04:55
поделиться

Вы могли включать внешние библиотеки Java в каталог Tomcat/lib. Тем путем они остаются на сервере.

0
ответ дан 8 December 2019 в 04:55
поделиться

Вы могли просто развернуться как файл JAR, копировать свою среду развертывания локально и просто скопировать по файлам, которые изменились и сама банка. Соединение каналом является единственной реальной проблемой.

Или Вы могли изучить установку EAR.

0
ответ дан 8 December 2019 в 04:55
поделиться

Можно ли добавить неизменяющиеся Банки к Пути к библиотеке Java на стороне сервера и только включать ли регулярно изменяющиеся Банки в ВОЙНУ?

0
ответ дан 8 December 2019 в 04:55
поделиться

@McDowell, при упоминании этих серверов J2EE, вы должны уточнить, что они являются серверами J2EE (контейнер сервлетов + все остальное).

Как и @digitaljoel, я предлагаю оставить все как есть . Похоже, вы еще не развернули много веб-приложений. Проблемы, которые у вас возникнут, не стоят затрат (конфликты версий, ошибки развертывания и т. Д.).

1
ответ дан 8 December 2019 в 04:55
поделиться

Я работаю с 'разнесенным веб-приложение »на серверах разработки, а иногда и в производственной среде. Процесс развертывания (на основе ANT) обновляет JAR-файлы в WEB-INF / lib с нашими пакетами. Только на сервере разработки мы активируем перезагрузку Tomcat, которая заботится о перезапуске приложения при изменении чего-либо. Вы должны назначить этим Tomcat некоторую дополнительную постоянную память и иметь возможность перезапустить сервер, так как перезагрузка может время от времени приводить к сбою Tomcat.

Я знаю это » - странная конфигурация, но я не могу понять, как постоянная переупаковка 30 МБ (и рост) нашего типичного приложения может сделать что-то лучше. Возможно, однажды дескриптор разработки разрешит внешние ссылки на библиотеки, которые контейнер может загружать и кэшировать. ??

Простите за плохой английский.

0
ответ дан 8 December 2019 в 04:55
поделиться

Мы используем для этого инструмент rsync (в нашем случае, используя cygwin под окнами ), чтобы скопировать развертывания на серверы (на которых работает Linux). Мы используем разложенные файлы WAR / EAR (т.е. структуру каталогов MyApp.war, а не zip-файл MyApp.war), rsync будет передавать только те файлы, которые были изменены.

Обычно rsync передает наши 30- 40 мегабайт расширяют EAR примерно за 5 секунд.

5
ответ дан 8 December 2019 в 04:55
поделиться

Что вам нужно, так это инструмент контроля версий и процесс сборки.

Используйте CSV, SVN, GIT или что угодно, что вам подходит, чтобы держать ваш исходный код под контролем. используйте инструмент сборки для сборки своего приложения: Maven, ant, ...

Теперь, когда вы хотите развернуть приложение на своем сервере, вам просто нужно зафиксировать обновления на своем компьютере, обновить исходный код на сервере, создайте свое приложение и разверните его с сервера.

Таким образом, серверу просто нужно будет загрузить ваши модификации, и это должно быть намного быстрее.

0
ответ дан 8 December 2019 в 04:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: