Подтвердить что ты не робот

Tomcat 7 - где установить "свойства системы"?

У моего webapp проблемы с обновления до Tomcat 7. Мой сеанс пройдет null после того, как я войду в систему и попытаюсь сделать что-либо (отправив запрос). Я прочитал, что может помочь следующее:

org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR=false

Кто-нибудь знает, где это установить? Должно ли это быть установлено в web.xml, context.xml или где-то еще?

Другое, что я хочу проверить, следующее:

org.apache.catalina.STRICT_SERVLET_COMPLIANCE
4b9b3361

Ответ 1

Вы можете установить любые системные свойства в

apache-tomcat-7.0.33\conf\catalina.properties

файл. Добавление вашей записи в этот файл должно решить вашу проблему.

например.

environment=local

Ответ 2

Вы можете установить Свойства системы в Tom cat, создав файл setenv.sh в каталоге /bin.  Для установки свойств системы я сделал следующее.

export JAVA_OPTS="-Dmyprojectvar.subname=value -Danothervariable=value -Danother.variable=value"

Помните:

Между export JAVA_OPTS и = нет пробела, а символ & отличается, используйте ..

Теперь запустите файл catalina.sh, чтобы запустить tomcat.

Ответ 3

РЕШЕНИЕ:

sessionCookiePathUsesTrailingSlash="false"

Мы действительно выяснили, как это решить. Это была установка Tomcat 7, которую нам нужно было установить. Мы поместили его в server.xml под тегом следующим образом:

<Context path="/test" reloadable="true" docBase="c:\webapp\test" 
workDir="c:\webapp\test" sessionCookiePathUsesTrailingSlash="false"/>

Когда мы отлаживали проблему и просматривали путь к файлам cookie, мы заметили, что после имени webapp помещался обратный слэш \, поэтому для нашего тестового webapp он устанавливал путь к /test/ вместо /test. Это вызвало множество проблем.

Кто-нибудь еще должен был справиться с этой настройкой в ​​Tomcat 7? Или есть аналогичная проблема?

Ответ 4

Вы можете установить эти системные свойства в командной строке, которая запускает Tomcat. Например, вы можете иметь файл setenv.batsetenv.sh, если вы находитесь в linux) в папке Tomcats bin со следующим содержимым:

set "CATALINA_OPTS=%CATALINA_OPTS% -Dfile.encoding=UTF8 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=true -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"

Этот файл является предпочтительным способом установки свойств для Tomcat.

Теперь FWD_SLASH_IS_SEPARATOR по умолчанию установлен на false. Если вы установите STRICT_SERVLET_COMPLIANCE на true, значение FWD_SLASH_IS_SEPARATOR также будет установлено на true (и значения некоторых других свойств). Однако вы можете явно установить его на false, например. используя в файле setenv следующее:

-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=true
-Dorg.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR=false

Это также то, что я предлагаю, когда кто-то устанавливает STRICT_SERVLET_COMPLIANCE в true, чтобы всегда отключать FWD_SLASH_IS_SEPARATOR. В противном случае значение пути cookie будет отправлено (например, "\"), а все браузеры на сегодняшний день, кроме Opera, не распознают это и будут, например, не отслеживать сеанс.

Ответ 5

Если вы пытаетесь установить переменные для сервера, работающего в eclipse:

  • Выберите "Выполнить" > "Запустить конфигурации"
  • Убедитесь, что выбран ваш сервер
  • Выберите вкладку "Среда"
  • Нажмите "Создать", чтобы добавить новую переменную