Ошибка веб-журнала 403 - Запрещено
Я пытаюсь запустить приложение Java EE на weblogic. Приложение отлично работает на Tomcat. Я настроил файл войны, чтобы включить weblogic.xml. Этот файл содержит следующий код: -
<container-descriptor>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
Я также изменил конфигурацию в файле свойств приложения, чтобы отобразить порт, на котором он прослушивает.
server.port = 7001
server.modjk.enabled = ложь
Мой файл web.xml содержит следующий код: -
<servlet>
<servlet-name>olatservlet</servlet-name>
<servlet-class>org.olat.core.servlets.OLATServlet</servlet-class>
<!-- Set the load order -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>olatservlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>olatservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Когда я изначально запускал файл war на weblogic 11g, я получал исключение nullpointer. Однако я могу развернуть файл, когда я удалил XerceImpl.jar из папки lib. Теперь я могу успешно развернуть приложение. Я называю корень контекста в weblogic как имя военного файла. Когда я пытаюсь открыть ссылку, сгенерированную weblogic на вкладке тестирования, я получаю следующую ошибку: -
Ошибка 403 - Запрещено
Из RFC 2068 Протокол передачи гипертекста - HTTP/1.1:
10.4.4 403 Запрещено
Сервер понял запрос, но отказывается его выполнять. Авторизация не поможет, и запрос НЕ ДОЛЖЕН повториться. Если метод запроса не был HEAD, и сервер хочет сообщить, почему запрос не был выполнен, ему ДОЛЖЕН описать причину отказа в сущности. Этот код состояния обычно используется, когда сервер не хочет точно определить, почему запрос был отклонен, или когда другой ответ не применим.
Мне было интересно, может ли кто-нибудь сказать мне, как решить эту проблему.
Ответы
Ответ 1
Я знаю, что очень поздно ответить на этот вопрос. Но я отвечаю своим маленьким знанием в надежде, что он поможет кому-то там.
Вы должны определить стартовую страницу в списке приветственных файлов в файле web.xml. Например, если client.jsp - это страница, которая будет отображаться при запуске вашего проекта, первая строка в списке приветственных файлов в Файл web.xml должен быть
<welcome-file-list>
<welcome-file>client.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
Ответ 2
Я знаю, что это очень поздно, но я также сталкиваюсь с одной и той же проблемой, и после поиска в Интернете я обнаружил, что причина, по которой и я решил опубликовать ее только для тех, кто может столкнуться с этой же проблемой. Эта веб-страница дала мне подсказку:
Ошибка 403
По умолчанию WebLogic отключает просмотр каталогов, поэтому если у вас есть сайт (например example.com) с index.html в качестве домашней страницы, и вы вводите
http://localhost:7001/example.com,
по умолчанию weblogic не будет автоматически получать домашнюю страницу для вас. Вам нужно ввести полный путь, т.е.
http://localhost:7001/example.com/index.html.
Либо это, вам нужно включить просмотр каталогов в weblogic. Во всяком случае, это то, что случилось со мной.
Ответ 3
Если вы пропустите добавление соответствующей конфигурации безопасности в weblogic.xml, вы получите " 403 Запрещено. Сервер понял запрос, но отказывается выполнить его.".
Таким образом, убедитесь, что помимо настройки web.xml с параметрами "ограничение безопасности", "login-config" и "security-role" у вас также есть "назначение роли безопасности" "в weblogic.xml, например:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1</wls:weblogic-version>
<wls:context-root>SomeApp</wls:context-root>
***************
***************
<wls:security-role-assignment>
<wls:role-name>someGroupeDefinedInWebLogicServer</wls:role-name>
<wls:principal-name>someUserDefinedInWebLogicServer</wls:principal-name>
</wls:security-role-assignment>
***************
***************
</wls:weblogic-web-app>
Надеюсь, это hepls.
Ответ 4
Можете ли вы проверить свой файл web.xml, не следует синтаксису xml, означает действительный XML файл, даже небольшую ошибку, например extra < или > вызывают такую проблему (я столкнулся с тем же)
Ответ 5
У меня была такая же проблема с одним из созданного мной поставщика услуг.
Я пытался получить доступ к нему через свой веб-браузер, и я не мог найти причину, почему у меня возникло это сообщение об ошибке, пока я не понял, что сервер действительно понял запрос, но для того, чтобы у вас был ответ, вы должны указать правильный формат (или медиатип), чтобы иметь возможность читать его, а затем сервер даст вам ответ.
Чтобы суммировать, поставщик услуг предоставлял ответ " application/xml ", когда я просил " application/html ", пока я не построил своего собственного клиента-клиента, ожидавшего " приложение /xml ", а затем сервер принял ответ ответ.
Ответ 6
Это может быть не связано с вопросом, но для тех, кто приходит от Google при попытке открыть веб-сайт: добавление HTTPS://в заголовке ссылки помогло в моем случае. Я получил эту ошибку при доступе к веб-сайту полета. Может быть, помочь другим, которые приходят из Google по той же проблеме.
Ответ 7
Вы можете добавить этот код в конец вашего файла web.xml
<welcome-file-list>
<welcome-file>faces/my_page.jspx</welcome-file>
</welcome-file-list>
или если вы используете JDeveloper, вы можете перейти на вкладку "Обзор", "Страницы" и в файлах приветствия, добавляя маршрут к странице, которую вы хотите открыть, с помощью defalut.
Также вы должны добавить "лица/" перед именем страницы, указав, что это маршрут по умолчанию к создаваемой вами странице.