我已经完成了以下配置,并尝试了找到的几乎所有解决方案,但没有任何帮助。当我在war软件包中部署spring boot应用程序时。在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>
application.properties
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
它包含应用程序特定的配置。
ApplicationBegin.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? 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上部署时也没有抛出任何错误,它都无法正常工作。我应该在哪里看?
答案 0 :(得分:0)
您可以尝试将类加载为父类吗?因此,Spring Boot将使用它自己的容器库。
答案 1 :(得分:0)
尝试了我从其他人那里找到的解决方案后,它无法解决我的问题,现在我已经以某种方式解决了它。我在该主题和解决方案上看到的所有类似问题,我最终都不知道实际上没有答案是解决方案,因为在大多数情况下,该问题是由于weblogic无法理解的错误配置而发生的。最糟糕的是它甚至不会引发错误。在我的情况下,除了application.properties文件和root-context.xml,我在/ WEB-INF位置中明确指定了web.xml文件,并在那里定义了context-config位置。一旦删除了web.xml并从上到下重构/过滤了项目依赖项,它就解决了该问题。 然后我意识到,如果您的配置正确,则甚至不需要在网络上针对此问题使用许多便捷的解决方案。例如,如果您正确使用spring boot jpa starter,则不需要配置jpavendor。 所以..如果您在weblogic上遇到这种部署问题,可以按照以下步骤操作-