为什么我在打开部署在 weblogic 上的应用程序时会出现 404 错误?

Why am I getting error 404 when I open the application I deployed on weblogic?

我有一个 Web 应用程序 spring + hibernate + struts2 运行ning in weblogic 12.c 所以当我 运行 它在我的本地 weblogic 上时它 运行 完美,但是当我将它部署到我的 qa 服务器也有一个 weblogic 12.c 我得到错误 404 即使应用程序状态说它是活跃的。 从 weblogic 我打开应用程序选项,然后是测试选项,最后是它根据 weblogic 具有的 url,但我仍然收到错误 404。 我尝试检查我的数据库连接,我的上下文没有任何成功。

这是我的 weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="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_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
    <!-- Usar las librerias del repositorio y no las del weblogic -->
    <container-descriptor>
       <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor> 
    <!-- Configuracion del directorio virtual -->
    <virtual-directory-mapping>   
        <local-path>C:\Oracle\Middleware\user_projects\domains\WeegoWeb</local-path>
        <url-pattern>formatos/*</url-pattern>
        <url-pattern>maletas/*</url-pattern>
        <url-pattern>modems/*</url-pattern>
        <url-pattern>sims/*</url-pattern>
        <url-pattern>contratos/*</url-pattern>
        <url-pattern>qr/*</url-pattern>
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.zip</url-pattern>
        <url-pattern>*.pdf</url-pattern>
    </virtual-directory-mapping>     
    <jsp-descriptor>
        <keepgenerated>true</keepgenerated>
        <debug>true</debug>
    </jsp-descriptor>
    <!-- Configuracion del contexto -->
    <context-root>WeegoWeb</context-root>
    <fast-swap>
        <enabled>false</enabled>
    </fast-swap>
</weblogic-web-app>

和我的 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     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"
     version="3.0">
    <display-name>WeegoWeb</display-name>
    
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
    </jsp-config>
    
    <filter>
        <filter-name>sanitizarFilter</filter-name>
        <filter-class>com.proximate.generales.interceptors.SanitizarFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>sanitizarFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>       
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
      <filter-name>CharacterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/conf/spring/context.xml</param-value>
    </context-param>
    <context-param>
        <param-name>tilesDefinitions</param-name>
        <param-value>/WEB-INF/tiles.xml</param-value>
    </context-param>
        
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>
    <listener>
        <listener-class>com.proximate.generales.interceptors.LoginInterceptor</listener-class>
    </listener>

    <welcome-file-list>
        <welcome-file>jsp/index.jsp</welcome-file>
    </welcome-file-list>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <error-page>
        <error-code>404</error-code>
        <location>/jsp/404.jsp</location>
    </error-page>   
<!--    <error-page>
        Missing login
        <error-code>401</error-code>
        <location>/jsp/error/error2.jsp</location>
    </error-page>
    <error-page>
        Forbidden directory listing
        <error-code>403</error-code>
        <location>/jsp/error/error2.jsp</location>
    </error-page>
    <error-page>
        Uncaught exception
        <error-code>500</error-code>
        <location>/jsp/error/error2.jsp</location>
    </error-page>
    <error-page>
        Unsupported servlet method
        <error-code>503</error-code>
        <location>/jsp/error/error2.jsp</location>
    </error-page> -->   
</web-app>

只有在我的本地环境中工作并且在我的 qa 服务器中显示错误 404,这会发生什么?

您在欢迎文件列表中使用了错误的文件名 jsp/index.jsp。您应该将文件名写在 welcome-file 标签中。

<welcome-file>index.jsp</welcome-file>

FilterDispatcher已弃用。您应该将 Struts 升级到最新版本并使用

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 

查看如何编写 Web 应用程序描述符 web.xml

注意: Struts 的版本在回答之日是 <= 2.3

检查日志后我发现无法访问 hibernate-configuration-3.0.dtd 因为服务器中的端口 80 被阻止,所以现在我下载了 hibernate-configuration-3 .0.dtd 并将其作为本地资源放置,以便我的休眠映射文件可以在本地使用它们。我想我要从 xml 休眠迁移到注释以避免更多问题。

在 Intellij 中遇到此错误 - weblogic 项目 “未找到错误404 来自 RFC 2068 超文本传输​​协议——HTTP/1.1:10.4.5 404 Not Found

不知何故,项目工件没有正确安装到本地 .m2 存储库中。通过 运行 mvn clean,package/install 命令确保其正确安装。