在weblogic12c上部署springBoot应用

在weblogic12c上部署springBoot应用,第1张

使用gradle构建项目

1、在build.gradle文件中增加以下内容

apply plugin:'war'

在dependencies区块中者冲梁增加

compilegroup:'org.slf4j',name:'slf4j-api',version:'1.7.21'

providedRuntime'org.springframework.boot:spring-boot-starter-tomcat'

2、启动文件要实现WebApplicationInitializer接口

@SpringBootApplication

public class MyApplication extends SpringBootServletInitializer implements WebApplicationInitializer {}

3、在webapp目录下增加WEB-INF/weblogic.xml

此处有几点需要特别关注的问题

1、你编写的启动文件,如我这里提到的MyApplication文件,不能放在com包下,如果放在com包下判竖一定要增加@ComponentScan(basePackages ="com.test")注解,就是扫描路径一定不能从com包开始,不然发布程序会有冲突,导致发布不成功。

2、程序发首运布时会提示需要jersey-spring包,需要在build.gradle文件中增加compilegroup:'com.sun.jersey.contribs',name:'jersey-spring',version:'1.19'

3、打包的war文件中lib包中会有一个log4j-slf4j-impl-2.7.jar包,这个包和org.slf4j包冲突,需要删除。

参考文档:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html

这里介绍另一个方法,利用“内存中的容器”来调试,就是我们不用打包并扔到tomcat中,自己在IDE中,用Unit Test的方法来测试。

1. Jersey的测试框指数架支持的容器很多,这里选用了常用的grizzly2

在项目的pom.xml中,引入依赖:

<dependency>

<groupId>org.glassfish.jersey.test-framework</groupId>

<artifactId>jersey-test-framework-core</artifactId>

<version>${jersey.version}</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.glassfish.jersey.test-framework.providers</groupId>

<artifactId>jersey-test-framework-provider-grizzly2</artifactId>

<version>${jersey.version}</version>

<scope>test</scope>

</dependency>

2. 写Jersey的Resource文件

@Path("my/jersey")

public class TestResource{

@Autowired

protected SystemManager systemManager//这由spring注入

@GET

@Path("/test")

public String test(@QueryParam("systemId") Integer systemId) {

return "test"

}

}

3. 书写SystemManager和SystemManagerImpl

4. 把manager配置码旅到Spring Application.xml中

5. 书写Jersey Application

@Path("webapi")

public class TestApplication extends ResourceConfig {

public TestApplication(){

register(RequestContextFilter.class)

register(TestResource.class)

}

}

6. 书写Unit Test文件

public class MyRestTest extends JerseyTest {

@Override

protected Application configure() {

ResourceConfig rc = new MyApplication()

.register(SpringLifecycleListener.class)

.register(RequestContextFilter.class)

enable(TestProperties.LOG_TRAFFIC)

enable(TestProperties.DUMP_ENTITY)

return configure(rc)

}

@Override

protected ResourceConfig configure(ResourceConfig rc) {

rc.property("contextConfigLocation", "spring.xml")

return rc

}

@Test

public void test(){

final String hello = target("my/jersey/test")

.queryParam("systemId", 1)

.request()

.get(String.class)

System.out.println("==========\唯模首n" + hello)

}

}

7. 运行test(),即可看到结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12256022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存