Ошибка веб-журнала 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. Также вы должны добавить "лица/" перед именем страницы, указав, что это маршрут по умолчанию к создаваемой вами странице.