it-roy-ru.com

Ошибка Weblogic 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 = false

Мой файл 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 и сервер желает обнародовать, почему запрос не был выполнен, он ДОЛЖЕН описать причину отказа в объекте. Этот код состояния обычно используется, когда сервер не хочет точно указывать, почему запрос был отклонен или когда другой ответ не применим.

Мне было интересно, если кто-то может сказать мне, как решить эту проблему.

12
user1439090

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

Вы должны определить начальную страницу в welcome-file-list в файле web.xml. Например, если client.jsp - это страница, которая будет отображаться при запуске вашего проекта, первая строка в welcome-file-list в web.xml файл должен быть

<welcome-file-list>
    <welcome-file>client.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
 </welcome-file-list>
8
user3923983

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

Ошибка 403 объяснена

По умолчанию WebLogic отключает просмотр каталогов, следовательно, если у вас есть веб-сайт (скажем, example.com) с index.html в качестве домашней страницы, и вы вводите 

http://localhost:7001/example.com, 

по умолчанию weblogic не будет автоматически получать домашнюю страницу для вас. Вам нужно ввести полный путь, т.е. 

http://localhost:7001/example.com/index.html.

Либо, вам нужно включить просмотр каталогов в weblogic. Во всяком случае, это то, что случилось со мной.

3
Rhycce

Если вы пропустите добавление соответствующей конфигурации безопасности в weblogic.xml, вы получите " 403 Запрещено. Сервер понял запрос, но отказывается его выполнить. " Ошибка.

Таким образом, убедитесь, что помимо настройки ваших web.xml с параметрами "security-constraint", "login-config" и "security-role", у вас также есть Конфигурация "security-role-assignment" в 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.

2
sergeyan

Это может быть не связано с вопросом, но для тех, кто приходит из Google при попытке открыть веб-сайт: добавление HTTPS: // в заголовке ссылки помогло в моем случае. Я получил эту ошибку при доступе к сайту полета. Может быть, помочь другим, которые приходят из Google по той же проблеме. 

0
Fernando Wittmann

У меня была такая же проблема с одним из созданных мной сервис-провайдеров.

Я пытался получить к нему доступ через свой веб-браузер, и я не мог найти причину, по которой у меня появилось это сообщение об ошибке, пока я не понял, что сервер действительно понимает запрос, но для того, чтобы получить ответ, необходимо указать правильный формат (или mediatype), чтобы иметь возможность прочитать его, и тогда сервер даст вам ответ.

Подводя итог, можно сказать, что поставщик услуг предоставлял ответ " application/xml ", когда я просил " application/html ", пока я не собрал своего собственного клиента-потребителя что ожидал " application/xml ", а затем сервер согласился ответить на ответ.

0
Akyo

Можете ли вы проверить свой файл web.xml, он не соответствует синтаксису xml, означает действительный файл xml, даже небольшая ошибка, такая как extra <или>, вызывает такую ​​проблему (я встречал такую ​​же)

0
V.Shanmugasundaram