weblogic安装
直接参照网上的安装教程:
weblogic安装教程
遇到的问题:
以上教程中的安装方式是直接解压安装的jar包,然后到相应的目录下启动安装程序。
还有一种方式就是用java命令的方式启动这个jar包,然后安装:
java -jar fmw_12.2.1.3.0_wls.jar
然后这时会报错如下:
正在提取安装程序... . . . . . . . . . . . . . . . 完成
此安装程序必须使用 Java 开发工具包 (JDK) 执行,
但 D:\soft\dev\Java\jre1.8.0_111 不是有效的 JDK Java 主目录。
日志位于此处: C:\Users\xiangquba\AppData\Local\Temp\
OraInstall2017-09-30_05-35-21PM\launcher2017-09-30_05-35-21PM.log。
网上搜索的原因,说是需要把weblogic的jar包放在jdk的bin目录下面再执行java -jar fmw_12.2.1.3.0_wls.jar命令。
尝试以后还是报不是有效的JDK主目录。
想了一下,可能是JDK的问题,我仔细检查了JDK的环境变量,确认没有问题。然后在CMD里面输入以下命令:
发现一个很神奇的现象,java的版本是1.8 javac的版本是1.7
随后我查看了jdk1.8的bin目录下发现没有javac.exe。
OK,现在找到了问题。但是为什么会这样呢?
我先卸载了电脑上的jdk1.7和1.8。然后在重新安装1.8的过程中发现了问题。
我们在安装jdk的时候,会先安装jdk,然后安装jre,这个过程需要我们选择两次安装目录,一次是jdk的安装目录,一次是jre的:
我在选择jre的安装目录时,选择了jdk的目录,导致安装的时候覆盖了jdk目录下的一些东西。最好的办法就是直接点击右上角的叉,不安装jre。要么就和jdk安装到同级目录。
经过以上重新安装jdk,然后正确安装jre的操作后,成功解决了weblogic在安装过程中出现的xxxxx不是有效的 JDK Java 主目录的问题。
weblogic12C部署springboot2.x项目
修改项目的pom文件改为打war包,并排除到springboot-start-web中的tomcat,加上单独的tomcat,设置域为provided
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
启动类实现WebApplicationInitializer
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.web.WebApplicationInitializer;
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
然后直接打成war包,按照网上的部署方式部署到weblogic即可
测试结果
通过对springboot2.x项目的改造,加上以上的部署教程,终于部署成功了:
接口测试,注意:访问的端口号为weblogic默认的端口7001,这个可以在weblogic控制台设置。
部署时遇到的坑
首先就是weblogic版本与jdk版本冲突的问题。我现在开发用的是jdk1.8,但是weblogic只有12C支持jdk1.8,所以在之前部署时老是报错,报各种奇葩的错误,参照了网上各种方法还是不行。最后换了weblogic12C就一切迎刃而解了。不需要像网上的教程那样在工程里面新增web.xml和weblogic.xml。直接按上面的修改打包部署到weblogic即可。
额外的收获
之前在eclipse里面打包项目时老是报:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
现在回想起来也可能是在安装jdk时安装了jre,并将jre的安装目录选择成了jdk目录造成jdk的bin目录下没有javac.exe,无法编译class文件。