Weblogic错误403 - 禁止

时间:2012-06-14 03:03:58

标签: java-ee web-applications weblogic war http-status-code-403

我正在尝试在weblogic上运行Java EE应用程序。该应用程序在Tomcat上运行正常。我已经定义了war文件以包含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>

当我最初在weblogic 11g上运行war文件时,我得到了一个nullpointer异常。但是,当我从lib文件夹中删除XerceImpl.jar时,我可以部署该文件。现在我能够成功部署应用程序。我将weblogic中的上下文根命名为war文件的名称。当我尝试在其测试选项卡中打开weblogic生成的链接时,出现以下错误: -

错误403 - 禁止

来自RFC 2068超文本传输​​协议 - HTTP / 1.1:

10.4.4 403禁止

服务器理解请求,但拒绝履行请求。授权无效,请求不应重复。如果请求方法不是HEAD并且服务器希望公开为什么请求没有得到满足,那么它应该描述实体中拒绝的原因。当服务器不希望明确拒绝请求的原因,或者没有其他响应适用时,通常会使用此状态代码。

我想知道是否有人可以告诉我如何解决这个问题。

7 个答案:

答案 0 :(得分:8)

我知道回答这个问题已经很晚了。但我正在回答我的小知识,希望能帮助那里的人。

您应该在web.xml文件中的welcome-file-list中定义起始页。例如,如果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>

答案 1 :(得分:3)

我知道这已经很晚了,但我也遇到了同样的问题,在谷歌搜索后,我发现原因,我决定只为其他可能遇到同样问题的人发布。这个网页给了我提示:

Error 403 explained

默认情况下,WebLogic会禁用目录浏览,因此如果您有一个网站(例如example.com),并将index.html作为主页并输入

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

默认情况下,weblogic不会自动为您检索主页。您需要输入完整路径,即

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

要么你需要在weblogic中启用目录浏览。无论如何,这就是发生在我身上的事。

答案 2 :(得分:2)

如果您错过了在weblogic.xml中添加相应的安全配置,您将获得“ 403 Forbidden。服务器理解该请求,但拒绝履行该请求。”错误。

因此,除了将 web.xml 配置为“ security-constraint ”,“ login-config ”和“< em> 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>

希望,这是理所当然的。

答案 3 :(得分:0)

请您检查一下您的web.xml文件,不遵循xml语法,意味着有效的xml文件,甚至是一个小错误,如extra&lt;或者&gt;引起这种问题(我遇到了同样的问题)

答案 4 :(得分:0)

我与我创建的服务提供商之一存在同样的问题。

我试图通过我的网络浏览器访问它,我无法找到我收到此错误消息的原因,直到我理解有效服务器真正了解请求但是为了让您获得响应,你必须指定正确的格式(或mediatype)才能读取它,然后服务器会给你回复。

为了改善,服务提供商提供了一个&#34; application / xml &#34;当我要求&#34; application / html &#34;直到我建立自己的客户消费者,期待&#34; application / xml &#34;然后服务器接受回复回复。

答案 5 :(得分:0)

这可能与问题无关,但是对于那些试图打开网站时来自Google的用户:在我的情况下,在链接标题中添加HTTPS://会有所帮助。访问航班网站时出现此错误。也许可以帮助其他来自Google的人解决同一问题。

答案 6 :(得分:-1)

您可以在web.xml文件的末尾添加此代码

<welcome-file-list>
    <welcome-file>faces/my_page.jspx</welcome-file>
</welcome-file-list>

或者如果您使用的是JDeveloper,您可以转到Overview选项卡,Pages和欢迎文件,将路由添加到您想要通过defalut打开的页面。 此外,您应该在页面名称前添加“faces /”,这样做这是您创建页面的默认路径。