springcloud gateway怎么部署tomcat

godwilling 2019-05-05 10:35:09
我有个spring cloud gateway的项目,在idea中可以正常运行,但是部署tomcat时不知道怎么部署。下面是我的pom文件信息。


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>tech.sxstudio.noteapi</groupId>
<artifactId>gateway2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gateway2</name>
<description>Demo project for Spring Boot</description>
<packaging>war</packaging>

<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--tomcat-->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--consul-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--feign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--GSON-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<finalName>gateway2</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

启动程序,我也做了修改

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class Gateway2Application extends SpringBootServletInitializer {

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

@Bean
public MyTokenFilter tokenFilter() {
return new MyTokenFilter();
}

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// Do any additional configuration here return builder.build();
return builder.build();
}

@Bean
public ServletContextInitializer initializer() {
return new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setAttribute("jsVer", "1.0");
}
};
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Gateway2Application.class);
}




}
部署到本机的tomcat中后,提示如下信息:
Parameter 0 of method modifyRequestBodyGatewayFilterFactory in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' that could not be found.


Action:

Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.

请问,pom文件,我该如何修改?
...全文
1686 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
就这样吧_me 2021-02-20
  • 打赏
  • 举报
回复
引用 4 楼 ws734456387 的回复:
[quote=引用 3 楼 godwilling 的回复:] 弄好了。gateway不能像一般的springboot类的项目那样部署到tomcat中。它自带了netty。把gateway项目打包成jar,然后部署到有java环境的容器中,使用java -jar 启动项目就可以了。结帖了。
这不算使用外置tomcat启动,老哥.[/quote] 请问大佬,外置tomcat 怎么启动呢?
ws734456387 2019-10-31
  • 打赏
  • 举报
回复
引用 3 楼 godwilling 的回复:
弄好了。gateway不能像一般的springboot类的项目那样部署到tomcat中。它自带了netty。把gateway项目打包成jar,然后部署到有java环境的容器中,使用java -jar 启动项目就可以了。结帖了。
这不算使用外置tomcat启动,老哥.
godwilling 2019-05-09
  • 打赏
  • 举报
回复
弄好了。gateway不能像一般的springboot类的项目那样部署到tomcat中。它自带了netty。把gateway项目打包成jar,然后部署到有java环境的容器中,使用java -jar 启动项目就可以了。结帖了。
godwilling 2019-05-05
  • 打赏
  • 举报
回复
顶,顶,顶。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧