当前位置: 首页 > 知识库问答 >
问题:

weblogic上的spring boot应用程序部署抛出404错误

马朝斑
2023-03-14

我已经完成了以下配置并尝试了几乎所有找到的解决方案,但没有任何帮助。当我在战争包中部署Spring启动应用程序时。没有错误记录在weblogic日志中,但应用程序抛出404错误。

web.xml

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:root-context.xml</param-value>
    </context-param>
    <context-param>  
    <param-name>spring.profiles.active</param-name>  
    <param-value>dev</param-value>  
    </context-param>  
    <context-param>  
    <param-name>spring.profiles.default</param-name>  
    <param-value>dev</param-value>  
</context-param>
<context-param>  
    <param-name>spring.liveBeansView.mbeanDomain</param-name>  
    <param-value>dev</param-value>  
</context-param>  

weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wls="http://www.bea.com/ns/weblogic/90"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
    <wls:weblogic-version>12.1.2.0.0</wls:weblogic-version>
    <wls:context-root>/services/userModule/</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>com.fasterxml</wls:package-name>
            <wls:package-name>org.slf4j</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

应用程序属性

spring.profiles.default=default
spring.profiles.active=default
spring.liveBeansView.mbeanDomain=default

cms.config.monitor.dir=/server/location/application/artifacts
application.messages.file.name=application-messages
application.config.file.name=application-config

root-context.xml

它包含应用程序特定的配置。

应用程序开始.java

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, JpaRepositoriesAutoConfiguration.class}) 
public class ApplicationBegin extends SpringBootServletInitializer implements WebApplicationInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ApplicationBegin.class);
    }

    public static void main(String[] args){
        SpringApplication.run(ApplicationBegin.class, args);

    }

无法从pom.xml中排除tomcat服务器,因为它编译失败。在使用spring boot starter web时,有没有办法将tomcat设置为provided?pom.xml

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>

                <!-- THIS WILL BE EXCLUDE ONLY FOR WEBLOGIC DEPLOYMENT -->
                <!--  <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>  -->
            </exclusions>
        </dependency>

问题是应用程序在嵌入式tomcat上运行良好,但在weblogic上部署时即使没有抛出任何错误,它也无法正常工作。我应该在哪里看?

共有3个答案

贺彬
2023-03-14

我也遇到了同样的问题,但我终于设法解决了它。

问题是描述符web.xml版本。如果你用将web.xml文件放在项目中

这也解释了你的应用程序的行为——当你删除web.xml文件时它开始工作的原因。

诸葛康胜
2023-03-14

在尝试了我从不同的人那里找到的解决方案后,它并不能解决我的问题,不知何故我现在已经解决了。我在这个主题和灵魂上看到的所有类似问题,我终于明白了没有答案实际上是一个解决方案,因为在大多数情况下,问题的发生是因为weblogic不理解的错误配置。最糟糕的是它甚至没有抛出错误。在我的例子中,除了application.properties文件和root-context.xml之外,我在/web-INF位置明确指定了web.xml文件,并在那里定义了上下文配置位置。一旦我删除了web.xml并从上到下重构/过滤了项目依赖项,它就解决了这个问题。然后我意识到,如果您的配置是正确的,那么这个问题甚至不需要web上的许多方便的解决方案。例如,如果正确使用springbootjpastarter,配置jpavendor就不需要了。因此,如果您在weblogic上遇到过这种部署问题,您可以按照以下步骤进行操作-

  1. 仅部署应用程序的最低限度部分,并使其在 weblogic 上可用
  2. 然后添加您的关键依赖项/配置,并在WebLogic上逐个部署它们,并检查它是否正常工作
  3. 您应该始终首先将启动应用程序运行到其他本地服务器,以解决主要配置问题。雄猫很好。
邢起运
2023-03-14

您可以尝试将类加载作为父级加载吗?所以 Spring 引导将使用它自己的容器库。

 类似资料:
  • 我有一个使用Tomcat服务器部署的JSF应用程序,它在Tomcat 7中完美运行。但是现在我需要部署非常应用程序Weblogic我将其部署到weblogic,但是在显示主页后,我尝试打开的任何链接我都会在我的应用程序中显示错误页面。 我使用JPA作为我的持久性API来连接到数据库。 Weblogic堆栈跟踪 我无法理解我是weblogic的新手请帮忙

  • 我正在尝试在weblogic application server 10.3中部署一个web应用程序 部署后,当我尝试激活更改时,我收到以下异常 我知道包含以下类org/apache/Commons/digester/Digester的jar文件在服务器运行时中丢失。 我在$DOMAIN/lib中添加了这个jar,并重新启动了weblogic服务器。部署后,我收到了相同的错误。 请告知。

  • 我目前正在尝试调整现有应用程序以使用甲骨文一致性,即在EAR中嵌入一个GAR。应用程序部署到Weblogic 12.1.3。在将GAR嵌入EAR之前,可以毫无问题地部署应用程序。 在部署时,我收到此错误: 显然,找不到缓存配置文件,但我不明白为什么。看起来GAR没有正确分解/解包,但我不知道为什么。 耳朵 耳朵内容物 应用程序。xml weblogic应用程序。xml GAR公司 GAR的内容 相

  • 由于我在Spring Boot项目中添加了Hateoas依赖项并部署在weblogic Server12c上,因此我面临这个问题 启动ApplicationContext时出错。若要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2020-01-09 14:18:53,591错误org.springframework.boot.diagnostics.loggingfailureanaly

  • 当我在webLogic上部署我的第一个web应用程序时,我会遇到以下错误: WebLogic.Application.ModuleException:java.lang.NullPoInterException位于WebLogic.Application.Internal.ExtensibleModuleWrapper.Prepare(ExtensibleModuleWrapper.java:11

  • 我有一个使用Thymeleaf作为模板引擎的Spring Boot应用程序,我添加了一个默认控制器,在服务器上部署时应该重定向到主页,控制器代码片段如下: 索引由 ViewResolver 解析到匹配的网页。 当在独立的Tomcat实例上部署生成的war“app . war”时,应用程序工作正常,我被重定向到主页(localhost:XXX/context _ path/index),“local