Jetty встроенный работает с использованием OpenJDK бросает PWC6188

используйте

ob_start ();

blockquote>

в самой верхней части вашего скрипта и

ob_end_flush ( );

blockquote>

внизу вашего скрипта. Этот wil включит буферизацию вывода и ваши заголовки будут созданы после того, как страница будет bufferd.

ОБЩИЕ ПРОБЛЕМЫ:

=============== =====

(скопированный ответ из: source )

1) не должно быть никакого выхода (т.е. echo.. или HTML-коды) перед командой header(.......);.

2) удалите любое белое пространство (или новую строку) до и после ?> тегов.

3) ЗОЛОТОЕ ПРАВИЛО! - проверьте, поддерживает ли этот файл php (а также, если вы include другие файлы) UTF8 без кодировки спецификации (а не только UTF-8). Это проблема во многих случаях (потому что кодированный файл UTF8 имеет что-то особенное в начале файла php, которое ваш текстовый редактор не показывает) !!!!!!!!!!!

4) После header(...); вы должны использовать exit;

5) всегда используйте ссылку 301 или 302:

header("location: http://example.com",  true,  301 );  exit;

6) Включить ошибку составление отчетов. И сообщать об ошибке.

7) Если ни одно из вышеизложенных не помогает, используйте перенаправление JAVSCRIPT (однако, сильно не рекомендуемый метод), может быть последним шансом в пользовательских случаях ...:

echo ""; exit;

0
задан Joakim Erdfelt 16 January 2019 в 20:51
поделиться

2 ответа

org.eclipse.jetty:jetty-jsp:jar:9.2.26.v20180806:compile

Все версии артефактов из org.eclipse.jetty.* должны быть одинаковыми.

Обновите вышеприведенный вариант до 9.4.14.v20181114.

0
ответ дан Joakim Erdfelt 16 January 2019 в 20:51
поделиться

Большое спасибо за немедленный ответ.

Я использую реализацию GlassFish JSP и наиболее стабильную версию из доступных «org.eclipse.jetty: jetty-jsp: jar: 9.2.26.v20180806: compile». https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-jsp.


    java -version
    openjdk version "11" 2018-09-25
    OpenJDK Runtime Environment 18.9 (build 11+28)
    OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

Та же проблема при использовании Oracle JDK.


    java -version
    java version "11.0.2" 2018-10-16 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.2+7-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+7-LTS, mixed mode)

Приложение успешно работает, когда я использую Oracle JDK 1.8

Чтобы работать в JDK 11, мне нужно изменить URI TLD на странице JSP, чтобы хорошо знать имя, а затем скопировать tld под WEB -INF и ссылаться явно в файле web.xml.

JSP (без ошибок),

<%@ taglib prefix="c" uri="jstl-core" %>
<%@ taglib prefix="fn" uri="jstl-functions" %>

web.xml

  <jsp-config>
    <taglib>
      <taglib-uri>jstl-core</taglib-uri>
      <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
      <taglib-uri>jstl-functions</taglib-uri>
      <taglib-location>/WEB-INF/fn.tld</taglib-location>
    </taglib>
  </jsp-config>

Ранее JSP (с ошибкой)

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

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

0
ответ дан Nathi 16 January 2019 в 20:51
поделиться
Другие вопросы по тегам:

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