springboot打包war部署到weblogic,涉及Filter以及Filter中的@Value處理


基於Maven構建。

1:修改pom.xml配置文件

<packaging>war</packaging>

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

            <!--排除內置tomcat-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<!-- 部署weblogic需要 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

 

2:修改Application

@ServletComponentScan
@SpringBootApplication
public class XtqmServerApplication  extends SpringBootServletInitializer implements WebApplicationInitializer {

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

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

}

3:Filter

@Component
@WebFilter(filterName = "xtqmFilter", urlPatterns = {"/xtqm/*"})
public class XtqmFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig){}

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    }

    @Override
    public void destroy(){}

}

(1)必須覆寫init與destroy方法,否則部署到weblogic中會報抽象方法異常錯誤;

(2)在Filter中不能直接使用@Value獲取配置文件中的變量信息,通過靜態工具類的方式實現:

@Component
public class SecretProperty {

    private static String secres;

    public static String getSecres() {
        return secres;
    }

    @Value("${jk.secret}")
    public void setSecres(String secres) {
        this.secres = secres;
    }
}

 

4: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/ejb-jar_3_0.xsd
                  http://xmlns.oracle.com/weblogic/weblogic-web-app
                  http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    
    <wls:context-root>/xxx</wls:context-root>
</wls:weblogic-web-app>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM