14

我正在尝试在 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=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>

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

错误 403--禁止

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

10.4.4 403 禁止

服务器理解请求,但拒绝执行。授权将无济于事,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开请求未完成的原因,它应该在实体中描述拒绝的原因。当服务器不希望确切地揭示请求被拒绝的原因或没有其他响应适用时,通常使用此状态代码。

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

4

7 回答 7

8

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

您应该在 web.xml 文件中的welcome-file-list 中定义起始页。例如,如果client.jsp 是您运行项目时要显示的页面,则web.xml 中的welcome-file-list 中的第一行文件应该是

<welcome-file-list>
    <welcome-file>client.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
 </welcome-file-list>
于 2014-08-08T23:04:15.647 回答
3

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

错误 403 解释

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

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

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

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

无论哪种方式,您都需要在 weblogic 中启用目录浏览。无论如何,这就是发生在我身上的事情。

于 2013-10-27T06:03:06.743 回答
3

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

因此,请确保除了使用“ security-constraint ”、“ login-config ”和“ security-role ”设置配置您的web.xml之外,您还可以在weblogic.xml中进行“ security-role-assignment ”配置,如下所示:

<?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>

希望,这有帮助。

于 2015-12-15T10:55:54.760 回答
0

我创建的服务提供商之一遇到了同样的问题。

我试图通过我的网络浏览器访问它,但我无法找到出现此错误消息的原因,直到我理解服务器确实理解了请求但为了让您获得响应,您必须指定正确的格式(或媒体类型)能够读取它,然后服务器会给你响应。

总而言之,服务提供者在我请求“ application/html ”时提供了“ application/xml ”响应,直到我构建了自己的期望“ application/xml ”的客户端消费者,然后服务器接受回复响应。

于 2018-03-20T09:00:35.440 回答
0

这可能与问题无关,但对于那些在尝试打开网站时来自谷歌的人来说:在链接的标题中添加 HTTPS:// 对我来说很有帮助。访问航班网站时出现此错误。也许可以帮助来自谷歌的其他人解决同样的问题。

于 2018-12-02T22:20:36.173 回答
-1

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

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

或者,如果您使用的是 JDeveloper,您可以转到概览选项卡、页面和欢迎文件中,将路由添加到您希望默认打开的页面。此外,您应该在页面名称之前添加“faces/”,因为这是您创建的页面的默认路由。

于 2015-01-29T21:45:06.757 回答
-1

请检查您的 web.xml 文件,不遵循 xml 语法,表示有效的 xml 文件,即使是像额外的 < 或 > 这样的小错误也会导致此类问题(我也遇到过)

于 2012-06-19T08:49:30.870 回答