第二章:Dubbo整合maven+spring+springmvc+mybatis之服务提供者搭建

1、ivan-api工程:

pom.xml文件配置如下,请根据自身工程情况修改:

<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>

	<groupId>ivan</groupId>
	<artifactId>ivan-api</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>ivan-api</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>ivan</groupId>
			<artifactId>ivan-entity</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

	</dependencies>
</project>

创建接口类,用于dubbo服务接口的暴露与消费者注入使用:

UserService.java

import java.util.List;
import com.ivan.entity.User;

public interface UserService {
	List<User> getUsers();
	User getUserByPrimaryKey(String id);
}

2、ivan-entity工程搭建,用于存放数据库映射的实体,后期存放model及formBean:


pom.xml

<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>

<groupId>ivan</groupId>
  <artifactId>ivan-entity</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>ivan-entity</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

创建实体User

import java.io.Serializable;

public class User implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -5451685937793368311L;
	
	private String id;
	private String nickyName;
	private String pwd;
	
	public User(String id,String nickyName,String pwd){
		this.id = id;
		this.nickyName = nickyName;
		this.pwd = pwd;
	}
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getNickyName() {
		return nickyName;
	}
	public void setNickyName(String nickyName) {
		this.nickyName = nickyName;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", nickyName=" + nickyName + ", pwd=" + pwd
				+ "]";
	}
}

3、ivan-core工程,用于存放第三方jar包,后期存放公共Utils工具类(目前还未加入公共工具类,只有一个pom.xml),不依赖任何其他工程:


pom.xml

<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>

	<groupId>ivan</groupId>
	<artifactId>ivan-core</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>ivan-core</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>4.1.4.RELEASE</spring.version>
		<jackson.version>2.5.0</jackson.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

		<!-- spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>
			<exclusions>
				<exclusion>
					<artifactId>spring</artifactId>
					<groupId>org.springframework</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.6</version>
		</dependency>

		<dependency>
			<groupId>com.netflix.curator</groupId>
			<artifactId>curator-framework</artifactId>
			<version>1.1.10</version>
		</dependency>

		<dependency>
			<groupId>com.101tec</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.6</version>
		</dependency>
		
		<!-- servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>3.0-alpha-1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<!-- mybatis 包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.8</version>
		</dependency>

		<!--mybatis spring 插件 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.2</version>
		</dependency>

		<!-- mysql连接 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
		</dependency>

		<!-- 数据源 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.12</version>
		</dependency>

		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.4</version>
		</dependency>

		<!-- json -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.13</version>
		</dependency>

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.3</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<!-- 文件上传 -->
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>

		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.2.2</version>
		</dependency>
	</dependencies>
</project>

4、ivan-dubbo-server工程搭建,服务提供者启动类,这里用于测试实现了ivan-api中的接口,可单独建立业务模块,依赖ivan-api、ivan-core:


pom.xml

<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>

	<span style="color:#FF9966;"><groupId>ivan</groupId>
	<artifactId>ivan-dubbo-server</artifactId>
	<version>0.0.1-SNAPSHOT</version></span>
	<packaging>jar</packaging>

	<name>ivan-dubbo-server</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>ivan</groupId>
			<artifactId>ivan-core</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

		<dependency>
			<groupId>ivan</groupId>
			<artifactId>ivan-api</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

	</dependencies>
</project>

创建spring-registry.xml文件,用于阐述暴露服务、注册中心及使用的协议等

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xsi:schemaLocation="http://www.springframework.org/schema/beans        
    http://www.springframework.org/schema/beans/spring-beans.xsd        
    http://code.alibabatech.com/schema/dubbo        
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

	<!-- 提供方应用信息,用于计算依赖关系 -->
	<dubbo:application name="ivan-dubbo-server" />

	<!-- 使用zookeeper广播注册中心暴露服务地址 -->
	<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
  
	<!-- 用dubbo协议在20880端口暴露服务 -->
	<dubbo:protocol name="dubbo" port="20880" />
	<!-- 
		官方注释:扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类。
		测试发现:此处package不填写包名会无法注册Service,扫描全包需填写包首即可或者填写至类的上一级目录。
	 -->
	<dubbo:annotation package="com" />
</beans>

为了方便排错,配置log4j.properties文件:

### set log levels ###
log4j.rootLogger = INFO , C , D , E 

### console ###
log4j.appender.C = org.apache.log4j.ConsoleAppender
log4j.appender.C.Target = System.out
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = [%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

### log file ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ../logs/ServerManager-Info.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

### exception ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ../logs/ServerManager-Error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = [%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

创建启动类,并加载spring-registry.xml文件,这是一个比较简单的启动类,各位看官可自行扩展一下

import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ServerMain {
	
	public static void main(String[] args) throws IOException {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[] { "spring-registry.xml" });
		context.start();

		System.in.read(); // 按任意键退出
	}
}


创建业务实现类,实现ivan-api中的UserService接口(注意:@Service中若存在其他属性如version,在消费者使用时,一定要匹配上,否则消费者无法找到服务提供者提供的信息)

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.dubbo.common.json.JSON;
import com.alibaba.dubbo.config.annotation.Service;
import com.ivan.api.dubbo.UserService;
import com.ivan.entity.User;

@Service
public class UserServiceImpl implements UserService {

	private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
	
	public List<User> getUsers() {
		logger.info("开始查询所有用户信息");
		
		List<User> listUser = new ArrayList<User>();
		User user1 = new User("1","ivan","123456");
		User user2 = new User("2","jack","123456");
		
		listUser.add(user1);
		listUser.add(user2);
		try {
			logger.info("查询结果:" + JSON.json(listUser));
		} catch (IOException e) {
			e.printStackTrace();
		}
		logger.info("查询结束");
		return listUser;
	}

	public User getUserByPrimaryKey(String id) {
		User user = new User("1","ivan","123456");
		logger.info("开始查询用户信息,查询条件ID为:"+id);
		logger.info("查询结果:" + user.toString());
		return user;
	}

}

至此,服务提供者已经搭建完成了,可以运行ServerMain来启动服务(前提你的注册中心zookeeper已经启动成功了),查看日志没有报错或者使用zookeeper监控软件查看发布的服务是否已经注册成功了?

这是我的启动成功日志:

[INFO] [2015-11-11 13:05:27] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(510) | Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@26061947: startup date [Wed Nov 11 13:05:27 CST 2015]; root of context hierarchy
[INFO] [2015-11-11 13:05:27] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from class path resource [spring-registry.xml]
[INFO] [2015-11-11 13:05:27] ?.?(?) | using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.config.ServiceConfig.exportLocal(510) |  [DUBBO] Export dubbo service com.ivan.api.dubbo.UserService to local registry, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(470) |  [DUBBO] Export dubbo service com.ivan.api.dubbo.UserService to url dubbo://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=5240&side=provider×tamp=1447218329224, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(481) |  [DUBBO] Register dubbo service com.ivan.api.dubbo.UserService url dubbo://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=5240&side=provider×tamp=1447218329224 to registry registry://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=ivan-dubbo-server&dubbo=2.5.3&pid=5240&registry=zookeeper×tamp=1447218329210, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.remoting.transport.AbstractServer.<init>(69) |  [DUBBO] Start NettyServer bind /0.0.0.0:20880, export /192.168.203.144:20880, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.registry.support.AbstractRegistry.loadProperties(232) |  [DUBBO] Load registry store file C:\Users\ivan\.dubbo\dubbo-registry-127.0.0.1.cache, data: {com.ivan.login.api.Login:1=dubbo://192.168.203.144:20880/com.ivan.login.api.Login?anyhost=true&application=ivan-demoDubbo&dubbo=2.5.3&interface=com.ivan.login.api.Login&methods=doLogin&pid=4040&revision=1&side=provider×tamp=1446777856875&version=1 empty://192.168.203.144/com.ivan.login.api.Login?application=test-springmvc&category=configurators&dubbo=2.5.3&interface=com.ivan.login.api.Login&methods=doLogin&pid=1316&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1446780900353&version=1 empty://192.168.203.144/com.ivan.login.api.Login?application=test-springmvc&category=routers&dubbo=2.5.3&interface=com.ivan.login.api.Login&methods=doLogin&pid=1316&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1446780900353&version=1, com.ivan.server.service.IService=empty://192.168.203.144:20880/com.ivan.server.service.IService?anyhost=true&application=ivan-demoDubbo&category=configurators&check=false&dubbo=2.5.3&interface=com.ivan.server.service.IService&methods=test&pid=7740&side=provider×tamp=1446780992890, com.ivan.dubbo.service.DemoService=dubbo://192.168.203.144:20880/com.ivan.dubbo.service.DemoService?anyhost=true&application=ivan-demoDubbo&dubbo=2.5.3&interface=com.ivan.dubbo.service.DemoService&methods=sayHell&pid=2168&side=provider×tamp=1446619828501 empty://192.168.203.144/com.ivan.dubbo.service.DemoService?application=ivan-demoDubbo&category=configurators&dubbo=2.5.3&interface=com.ivan.dubbo.service.DemoService&methods=sayHell&pid=6508&revision=service&side=consumer×tamp=1446621230513 empty://192.168.203.144/com.ivan.dubbo.service.DemoService?application=ivan-demoDubbo&category=routers&dubbo=2.5.3&interface=com.ivan.dubbo.service.DemoService&methods=sayHell&pid=6508&revision=service&side=consumer×tamp=1446621230513, com.ivan.api.dubbo.UserService=dubbo://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=10692&side=provider×tamp=1447212092933 empty://192.168.203.144/com.ivan.api.dubbo.UserService?application=test-springmvc&category=configurators&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=2012&side=consumer×tamp=1447212242742 empty://192.168.203.144/com.ivan.api.dubbo.UserService?application=test-springmvc&category=routers&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=2012&side=consumer×tamp=1447212242742, com.ivan.dubbo.service.a.DemoServiceA:1.0.0=empty://192.168.203.144:20880/com.ivan.dubbo.service.a.DemoServiceA?anyhost=true&application=ivan-demoDubbo&category=configurators&check=false&dubbo=2.5.3&interface=com.ivan.dubbo.service.a.DemoServiceA&methods=sayHell&pid=2168&revision=1.0.0&side=provider×tamp=1446619827949&version=1.0.0, com.ivan.dubbo.service.a.DemoServiceA=empty://192.168.203.144/com.ivan.dubbo.service.a.DemoServiceA?application=ivan-demoDubbo&category=providers&dubbo=2.5.3&interface=com.ivan.dubbo.service.a.DemoServiceA&methods=sayHell&pid=6172&revision=service&side=consumer×tamp=1446621271949 empty://192.168.203.144/com.ivan.dubbo.service.a.DemoServiceA?application=ivan-demoDubbo&category=configurators&dubbo=2.5.3&interface=com.ivan.dubbo.service.a.DemoServiceA&methods=sayHell&pid=6172&revision=service&side=consumer×tamp=1446621271949 empty://192.168.203.144/com.ivan.dubbo.service.a.DemoServiceA?application=ivan-demoDubbo&category=routers&dubbo=2.5.3&interface=com.ivan.dubbo.service.a.DemoServiceA&methods=sayHell&pid=6172&revision=service&side=consumer×tamp=1446621271949, com.ivan.login.api.Login=dubbo://192.168.203.144:20880/com.ivan.login.api.Login?anyhost=true&application=ivan-demoDubbo&dubbo=2.5.3&interface=com.ivan.login.api.Login&methods=doLogin&pid=7740&side=provider×tamp=1446780993496 empty://192.168.203.144/com.ivan.login.api.Login?application=test-springmvc&category=configurators&dubbo=2.5.3&interface=com.ivan.login.api.Login&methods=doLogin&pid=4124&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1446781152045 empty://192.168.203.144/com.ivan.login.api.Login?application=test-springmvc&category=routers&dubbo=2.5.3&interface=com.ivan.login.api.Login&methods=doLogin&pid=4124&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1446781152045, com.ivan.dubbo.service.UserService=empty://192.168.203.144:20880/com.ivan.dubbo.service.UserService?anyhost=true&application=ivan-dubbo-server&category=configurators&check=false&dubbo=2.5.3&interface=com.ivan.dubbo.service.UserService&methods=getUserByPrimaryKey,getUsers&pid=10488&side=provider×tamp=1447131429769}, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] org.I0Itec.zkclient.ZkEventThread.run(64) | Starting ZkClient event thread.
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:host.name=192.168.203.144
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.version=1.7.0_80
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.vendor=Oracle Corporation
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.home=C:\Program Files\jdk1.7.0_80\jre
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.class.path=D:\java\self_workspace\ivan-dubbo-server\target\classes;D:\java\self_workspace\ivan-core\target\classes;D:\maven\repository\org\springframework\spring-core\4.1.4.RELEASE\spring-core-4.1.4.RELEASE.jar;D:\maven\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\maven\repository\org\springframework\spring-beans\4.1.4.RELEASE\spring-beans-4.1.4.RELEASE.jar;D:\maven\repository\org\springframework\spring-context\4.1.4.RELEASE\spring-context-4.1.4.RELEASE.jar;D:\maven\repository\org\springframework\spring-aop\4.1.4.RELEASE\spring-aop-4.1.4.RELEASE.jar;D:\maven\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\maven\repository\org\springframework\spring-expression\4.1.4.RELEASE\spring-expression-4.1.4.RELEASE.jar;D:\maven\repository\org\springframework\spring-tx\4.1.4.RELEASE\spring-tx-4.1.4.RELEASE.jar;D:\maven\repository\org\springframework\spring-web\4.1.4.RELEASE\spring-web-4.1.4.RELEASE.jar;D:\maven\repository\org\springframework\spring-webmvc\4.1.4.RELEASE\spring-webmvc-4.1.4.RELEASE.jar;D:\maven\repository\org\springframework\spring-jdbc\4.1.4.RELEASE\spring-jdbc-4.1.4.RELEASE.jar;D:\maven\repository\com\alibaba\dubbo\2.5.3\dubbo-2.5.3.jar;D:\maven\repository\org\javassist\javassist\3.15.0-GA\javassist-3.15.0-GA.jar;D:\maven\repository\org\jboss\netty\netty\3.2.5.Final\netty-3.2.5.Final.jar;D:\maven\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;D:\maven\repository\org\slf4j\slf4j-api\1.6.1\slf4j-api-1.6.1.jar;D:\maven\repository\org\slf4j\slf4j-log4j12\1.6.1\slf4j-log4j12-1.6.1.jar;D:\maven\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;D:\maven\repository\jline\jline\0.9.94\jline-0.9.94.jar;D:\maven\repository\io\netty\netty\3.7.0.Final\netty-3.7.0.Final.jar;D:\maven\repository\com\netflix\curator\curator-framework\1.1.10\curator-framework-1.1.10.jar;D:\maven\repository\com\netflix\curator\curator-client\1.1.10\curator-client-1.1.10.jar;D:\maven\repository\com\google\guava\guava\11.0.1\guava-11.0.1.jar;D:\maven\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;D:\maven\repository\com\101tec\zkclient\0.6\zkclient-0.6.jar;D:\maven\repository\javax\servlet\jstl\1.2\jstl-1.2.jar;D:\maven\repository\org\mybatis\mybatis\3.2.8\mybatis-3.2.8.jar;D:\maven\repository\org\mybatis\mybatis-spring\1.2.2\mybatis-spring-1.2.2.jar;D:\maven\repository\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar;D:\maven\repository\com\alibaba\druid\1.0.12\druid-1.0.12.jar;C:\Program Files\jdk1.7.0_80\lib\jconsole.jar;C:\Program Files\jdk1.7.0_80\lib\tools.jar;D:\maven\repository\org\aspectj\aspectjweaver\1.8.4\aspectjweaver-1.8.4.jar;D:\maven\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;D:\maven\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;D:\maven\repository\com\alibaba\fastjson\1.2.3\fastjson-1.2.3.jar;D:\maven\repository\com\fasterxml\jackson\core\jackson-annotations\2.5.0\jackson-annotations-2.5.0.jar;D:\maven\repository\com\fasterxml\jackson\core\jackson-core\2.5.0\jackson-core-2.5.0.jar;D:\maven\repository\com\fasterxml\jackson\core\jackson-databind\2.5.0\jackson-databind-2.5.0.jar;D:\maven\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;D:\maven\repository\commons-fileupload\commons-fileupload\1.2.2\commons-fileupload-1.2.2.jar;D:\java\self_workspace\ivan-api\target\classes;D:\java\self_workspace\ivan-entity\target\classes
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.library.path=C:\Program Files\jdk1.7.0_80\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/jdk1.7.0_80/bin/../jre/bin/server;C:/Program Files/jdk1.7.0_80/bin/../jre/bin;C:/Program Files/jdk1.7.0_80/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\NetSarang;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\TortoiseSVN\bin;C:\Program Files\jdk1.7.0_80\bin;C:\Program Files\jdk1.7.0_80\jre\bin;C:\Program Files (x86)\nodejs\;D:\develop\apache-maven-3.2.5\bin;C:\Users\ivan\AppData\Roaming\npm;D:\codetools\eclipse-jee-kepler-SR2-win32-x86_64;;.
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.io.tmpdir=C:\Users\ivan\AppData\Local\Temp\
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:java.compiler=<NA>
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:os.name=Windows 7
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:os.arch=amd64
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:os.version=6.1
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:user.name=ivan
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:user.home=C:\Users\ivan
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.Environment.logEnv(100) | Client environment:user.dir=D:\java\self_workspace\ivan-dubbo-server
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.ZooKeeper.<init>(438) | Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.I0Itec.zkclient.ZkClient@22a7106
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(975) | Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(852) | Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session
[WARN] [2015-11-11 13:05:29] org.apache.zookeeper.ClientCnxnSocket.readConnectResult(139) | Connected to an old server; r-o mode will be unavailable
[INFO] [2015-11-11 13:05:29] org.apache.zookeeper.ClientCnxn$SendThread.onConnected(1235) | Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x150efc123d9000b, negotiated timeout = 30000
[INFO] [2015-11-11 13:05:29] org.I0Itec.zkclient.ZkClient.processStateChanged(704) | zookeeper state changed (SyncConnected)
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.registry.support.AbstractRegistry.register(302) |  [DUBBO] Register: dubbo://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=5240&side=provider×tamp=1447218329224, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.registry.support.AbstractRegistry.subscribe(325) |  [DUBBO] Subscribe: provider://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&category=configurators&check=false&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=5240&side=provider×tamp=1447218329224, dubbo version: 2.5.3, current host: 127.0.0.1
[INFO] [2015-11-11 13:05:29] com.alibaba.dubbo.registry.support.AbstractRegistry.notify(422) |  [DUBBO] Notify urls for subscribe url provider://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&category=configurators&check=false&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=5240&side=provider×tamp=1447218329224, urls: [empty://192.168.203.144:20880/com.ivan.api.dubbo.UserService?anyhost=true&application=ivan-dubbo-server&category=configurators&check=false&dubbo=2.5.3&interface=com.ivan.api.dubbo.UserService&methods=getUserByPrimaryKey,getUsers&pid=5240&side=provider×tamp=1447218329224], dubbo version: 2.5.3, current host: 127.0.0.1

好了,下一章我们来搭建服务消费者ivan-dubbo-web工程。


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值