tomcat server有问题,我用的netty的
一,添加pom.xml(dubbo基础的依赖没)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.7</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.7.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.7.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<!-- 如果要使用json序列化 -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.0.7.Final</version>
</dependency>
<!-- 如果要使用xml序列化 -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>3.0.7.Final</version>
</dependency>
<!-- 如果要使用netty server -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-netty</artifactId>
<version>3.0.7.Final</version>
</dependency>
<!-- 如果要使用Sun HTTP server -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jdk-http</artifactId>
<version>3.0.7.Final</version>
</dependency>
<!-- 如果要使用tomcat server -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
<version>8.0.11</version>
</dependency>
二,配置providerConfig(主流是xml配置,所以这里是java配置)
注意点:bean的name一定要有而且是dubbo和rest要区分开
/**
* 默认基于dubbo协议提供服务
*
* @return
*/
@Bean(name = "dubbo")
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
public ProtocolConfig protocolConfig() {
// 服务提供者协议配置
ProtocolConfig protocolConfig = new ProtocolConfig();
protocolConfig.setName(properties.getProtocolName());
protocolConfig.setPort(properties.getProtocolPort());
protocolConfig.setAccepts(properties.getProtocolAccepts());
protocolConfig.setAccesslog(properties.getProtocolAccesslog());
protocolConfig.setBuffer(properties.getProtocolBuffer());
protocolConfig.setHeartbeat(properties.getProtocolHeartbeat());
protocolConfig.setIothreads(properties.getProtocolIothreads());
protocolConfig.setContextpath(properties.getProtocolContextpath());
protocolConfig.setPayload(properties.getProtocolPayload());
protocolConfig.setQueues(properties.getProtocolQueues());
protocolConfig.setThreadpool(properties.getProtocolThreadpool());
protocolConfig.setThreads(properties.getProtocolThreads());
return protocolConfig;
}
@Bean(name = "rest")
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
public ProtocolConfig protocolDubboConfig() {
ProtocolConfig protocolConfig = new ProtocolConfig();
protocolConfig.setName("rest");
protocolConfig.setServer("netty");
protocolConfig.setPort(8888);
return protocolConfig;
}
三,编写service
package com.hahaha.bss.service;
import com.alibaba.dubbo.config.annotation.Service;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
/**
* Created by lijunhao on 2017/7/18.
*/
@Service(protocol = "rest")
@Path(value = "tests")
public class TestDubboImpl implements TestDubbo {
@Override
@GET
@Path(value = "tests")
@Consumes({MediaType.APPLICATION_JSON})
public String getStrding() {
return "hello world!";
}
}
四,测试