我们已经成功发布了Dubbo服务,现在本文来测试一下引用Dubbo服务是否好使。

在启动taotao-manager工程之前,我们先检查我们的Zookeeper当前是否处于开启状态,使用cd /usr/local/zookeeper/zookeeper-3.4.14/bin命令切换到bin目录下,然后使用./zkServer.sh status命令来查看其启动状态,如果Zookeeper没启动,就使用./zkServer.sh start命令来启动它。如果看到以下所示结果,说明其是启动状态的。
在这里插入图片描述
我们还需要做件事情,就是配置防火墙,因为防火墙不让我们访问8080和8081端口,为了方便,我们直接关闭防火墙并且设置开机也不启动,大家可按如下步骤进行,我截图如下:
在这里插入图片描述

  • systemctl stop firewalld:临时关闭防火墙
  • systemctl disable firewalld:禁止防火墙开机自启动

下面我们启动taotao-manager工程(taotao-manager-service包含在taotao-manager工程下,因此启动taotao-mananger工程也相当于启动了taotao-mananger-service工程),关于如何启动聚合工程,大家可以参考《淘淘商城第5讲——使用maven tomcat插件启动聚合工程》这篇博客进行学习。

启动taotao-manager工程时,相信你一定遇到过下面这个错误,因为我就遇到过,错误信息截图如下。
在这里插入图片描述
如何解决这个错误呢?你可以参考《maven快速入门番外篇——安装maven项目时报错:No compiler is provided in this environment…》这篇博客进行学习。

如果我们看到下图时,则说明我们的taotao-manager工程正常启动了。
在这里插入图片描述
如果长时间未看到上图所示信息,很有可能是我们的Zookeeper还未启动,故我们需要打开虚拟机并启动Zookeeper。

启动完taotao-manager工程之后,我们来启动taotao-manager-web工程,由于该工程依赖聚合工程taotao-manager下的taotao-manager-interface和taotao-manager-pojo这两个工程,为了一次性解决问题,我们直接安装taotao-manager工程即可,按如下图所示操作。
在这里插入图片描述
安装完之后,我们到本地maven仓库位置查看下是否生成了我们想要的包。从下图中,可以看到都正常生成了。
在这里插入图片描述
下面我们便来启动taotao-manager-web工程,看到如下图所示信息则说明taotao-manager-web工程也正常启动了。
在这里插入图片描述
接下来我们便来试着访问一下Dubbo服务,我们从数据库tb_item数据库表中随便找一个商品id,比如605616,如下图所示。
在这里插入图片描述
我们在浏览器地址栏中输入http://localhost:8081/item/605616这样的url地址来访问服务端,相信你会看到如下图所示的错误。
在这里插入图片描述
出现上图所示错误的原因是我们在本地没有把taotao-manager-dao工程下的Mapper映射文件编译进来,如下图所示,发现只有class文件,就是没有Mapper映射文件。
在这里插入图片描述
要解决Mapper映射文件不发布的这个问题,我们就需要把Mapper映射文件也加载进来,方法是在taotao-manager-dao工程的pom文件中添加如下一段配置。

<!-- 如果不添加此节点,那么MyBatis的Mapper映射文件都会被漏掉 -->
<build>
	<!-- 注意:配置了此方式,原来的默认的资源拷贝行为将无效 -->
	<resources>
		<resource>
			<directory>src/main/java</directory>
			<includes>
				<include>**/*.properties</include>
				<include>**/*.xml</include>
			</includes>
			<filtering>false</filtering>
		</resource>
	</resources>
</build>

添加完配置之后taotao-manager-dao工程的pom文件的完整内容如下:

<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>com.taotao</groupId>
		<artifactId>taotao-manager</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>taotao-manager-dao</artifactId>

	<dependencies>
		<!-- 依赖taotao-manager-pojo -->
		<dependency>
			<groupId>com.taotao</groupId>
			<artifactId>taotao-manager-pojo</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		<!-- MyBatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
		</dependency>
		<!-- MyBatis与分页相关的jar包 -->
		<dependency>
			<groupId>com.github.miemiedev</groupId>
			<artifactId>mybatis-paginator</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
		</dependency>
		<!-- MySQL数据库驱动jar包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- 连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
		</dependency>
	</dependencies>
	<!-- 如果不添加此节点,那么MyBatis的Mapper映射文件都会被漏掉 -->
	<build>
		<!-- 注意:配置了此方式,原来的默认的资源拷贝行为将无效 -->
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
				</includes>
				<filtering>false</filtering>
			</resource>
		</resources>
	</build>
</project>

下面我们再重启taotao-manager工程,启动完之后,我们再看下是否已经生成了Mapper映射文件,如下图所示,发现这些Mapper映射文件已经成功生成了。
在这里插入图片描述
这时,我们再访问http://localhost:8081/item/605616这样一个url地址,发现又TMD报错了,错误信息如下图所示。
在这里插入图片描述
出现这个错误的原因是因为我们的pojo类没有实现序列化接口,所以我们把所有不是以Example结尾的pojo都实现序列化接口,如下图所示。
在这里插入图片描述
由于我们改动了taotao-manager-dao和taotao-manager-pojo这两个工程,因此我们最好再重新打下包,也就是把taotao-manager工程Maven install一下。重新打包后,我们重启taotao-manager工程,然后再访问一下http://localhost:8081/item/605616,发现可以正常访问到数据了,如下图所示。
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐