caoni大业 spring boot 跳坑记
IDEA环境
win10 跑得刚刚,到xp系统就戈壁
报错
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
原因:tomcat版本引起
解决加入
<properties>
<tomcat.version>7.0.69</tomcat.version>
</properties>
又报错
Caused by: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
解决加入
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>7.0.69</version>
</dependency>
又报错
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
解决将spring-boot降到
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
至此可正常运行
付源码 Sb20180328Application.java
@RestController @SpringBootApplication public class Sb20180328Application { public static void main(String[] args) { SpringApplication.run(Sb20180328Application.class, args); } @RequestMapping(value = "/",produces = "text/plain;charset=UTF-8") String index(){ return "Hello Spring Boot!"; } }
引入springboot修改tomcat版本
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${springboot.version}</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>${tomcat.version}</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> <version>${tomcat.version}</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> <version>${tomcat.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>1.4.2.RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-juli</artifactId> <version>${tomcat.version}</version> </dependency> </dependencies>
拦截器中的跳转
httpServletResponse.sendRedirect("/err/cscascd");
不管用,应该用
httpServletRequest.getRequestDispatcher("/err/cscascd").forward(httpServletRequest,httpServletResponse);
=20181127===附加解决办法
2.x版本需要1.8的jdk,但一定要到72版本以上,否则
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String
还有需要下载tcnative-1.dll到 c:\windiws\system32下面,注意版本,否则会报错啥APR什么玩意的错误
http://mirrors.shu.edu.cn/apache/tomcat/tomcat-connectors/native/1.2.18/binaries/tomcat-native-1.2.18-openssl-1.0.2p-win32-bin.zip
浙公网安备 33010602011771号