springboot亲测rest协议支持,date类型返回
2021-04-27 07:27
标签:tpc str cli ret order pac 没有 协议 parameter 今天花了一下午的时间搞了一下dubbo service支持http访问的demo 注释原来的dubbo配置 修改成
从dubbo 2.6.0 开始dubbo已经支持了http访问service的,网上也找了一下我的环境是springboot+dubbo的,网上的dubbo都是用xml去配置的,我的是springboot没有xml1)修改配置
2)添加依赖
3)修改实现类,官方也是这么建议的
- import javax.ws.rs.GET;
- import javax.ws.rs.Path;
- import javax.ws.rs.Produces;
- import javax.ws.rs.core.MediaType;
- /**
- * @Path 添加访问前缀 跟@RequestMapping这个注解差不多
- * @GET 使用get访问
- * @Produces 是指返回给消费者的时候,是以json格式返回,如果是对象,会自动转换成json
- * @Service 注解添加要支持的协议,上面的测试代码是支持两种协议
- * 官方文档 http://dubbo.apache.org/zh-cn/docs/user/references/protocol/rest.html
- */
- @Slf4j
- @Component
- @Service(interfaceClass = OrderDemoService.class,protocol = {"rest","dubbo"})
- @Path("/order")
- public class OrderDemoServiceImpl implements OrderDemoService {
- @Path("/get")
- @GET
- @Produces({MediaType.APPLICATION_JSON + "; " + MediaType.CHARSET_PARAMETER + "=UTF-8"})
- @Override
- public String getOrder() {
- return "www.phpsong.com";
- }
- }
我这测试通过了
4)JSON返会的问题
对象或map返回的时候会提示
-
org.jboss.resteasy - resteasy-jackson-provider
-
3.0.19.Final
说一下网上找的资料不正确的
springboot+dubbo 多协议的配置
- dubbo.protocols.dubbo.name=dubbo
- dubbo.protocols.dubbo.port=20017
- dubbo.protocols.rest.name=rest
- dubbo.protocols.rest.port=30017
- dubbo.protocols.rest.server=tomcat
结果我启动的时候提示
- java.lang.NullPointerException: beanName=orderDemoServiceImpl, registry=rest not found in multi configs
还有一种配置是添加配置类
- @Configuration
- @Slf4j
- public class config {
- @Bean("dubbo")
- public ProtocolConfig dubboProtocolConfig() {
- ProtocolConfig protocolConfig = new ProtocolConfig();
- protocolConfig.setName("dubbo");
- int port = 20016;
- log.info("dubbo provider dubbo port = {}", port);
- protocolConfig.setPort(port);
- protocolConfig.setId("dubbo");
- protocolConfig.setServer(null);
- return protocolConfig;
- }
- @Bean("rest")
- public ProtocolConfig restProtocolConfig() {
- ProtocolConfig protocolConfig = new ProtocolConfig();
- protocolConfig.setName("rest");
- int port = 30016;
- log.info("dubbo provider rest port = {}", port);
- protocolConfig.setPort(port);
- protocolConfig.setId("rest");
- protocolConfig.setServer("tomcat");
- return protocolConfig;
- }
- }
还是一样的错误提示
- java.lang.NullPointerException: beanName=orderDemoServiceImpl, registry=rest not found in multi configs
大概的意思是说找不到rest协议的配置,因为我在@service注解上添加了rest协议的配置
最近在开发项目的时候发现springboot返回给前端的是时间戳,百度了一下这个问题,有两个解决方式
在它的get方法上也添加:
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+08:00”)
- @Data
- class Person{
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
- private Date createTime;
- }
还有一种方式加到配置文件里,全局都有效
- spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
- spring.jackson.time-zone=GMT+8
第一行指定date输出格式为yyyy-MM-dd HH:mm:ss;
第二行指定时区,解决8小时的时间差问题。
springboot亲测rest协议支持,date类型返回
标签:tpc str cli ret order pac 没有 协议 parameter
原文地址:https://www.cnblogs.com/ynog/p/13245864.html
文章标题:springboot亲测rest协议支持,date类型返回
文章链接:http://soscw.com/essay/79995.html