如何在weblogic 12C上运行Spring Boot app?

时间:2017-01-03 10:20:04

标签: java weblogic

如何在weblogic 12c上运行Spring Boot应用程序。

我的应用程序类是这样的:

package com.website;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.web.WebApplicationInitializer;

@EnableAutoConfiguration
@ComponentScan
@MapperScan("com.website.mapper")
@SpringBootApplication
public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return new org.apache.tomcat.jdbc.pool.DataSource();
    }

    @Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource());

        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml"));
        return sessionFactoryBean.getObject();
    }

    /**
     * Start
     * 
     * @Created by zyj on 2016年11月28日
     * @param args
     * @Version 1.0
     */
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

现在,我在weblogic上部署app。

它显示了部署成功。

但是,控制台中没有Spring Boot日志消息。

我的控制器配置了映射@RequestMapping("/home/sign_in")

当我访问http://localhost:7001/demo/home/sign_in时,我得到404

没有任何更改的控制台。

我想在Weblogic上运行Spring Boot应用程序怎么办?

我需要帮助。非常感谢你。

PS:

这是我的pom.xml文件的一部分:

<modelVersion>4.0.0</modelVersion>
<groupId>com.smember</groupId>
<artifactId>website</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>website Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
...
</dependencies>
...
<build>
    <finalName>website</finalName>
</build>

2 个答案:

答案 0 :(得分:1)

在Web_INF中添加Weblogic.xml和dispatcher-servlet [empty]。 同样对于数据源配置,在weblogic中定义它并在此处使用JNDI名称[见下文]

在application.properties中  spring.datasource.jndi名= XYZ-JNDI名称

<强> 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/web-app_2_5.xsd                         http://xmlns.oracle.com/weblogic/weblogic-web-app                         http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
    <wls:weblogic-version>12.1.1</wls:weblogic-version>
    <wls:context-root>bh</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
            <wls:package-name>javax.persistence.*</wls:package-name> 
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

答案 1 :(得分:0)

Weblogic期待WAR包。 您应该通过修改pom.xml将包装更改为WAR而不是JAR。