maven多工程应用,spring MAVEN多个子模块之间的调用
2017-12-17 15:41
525 查看
1、ps系统中有两个模块ps-admin和ps-service,ps-admin负责前台展示,ps-service负责后台数据处理,ps的多模块部署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>com.suning.search</groupId>
<artifactId>ps</artifactId>
<packaging>pom</packaging>
<name>ps-parent</name>
<version>0.0.1-SNAPSHOT</version>
<modules>
<module>ps-admin</module>
<module>ps-service</module>
</modules>
<dependencyManagement><!--admin和service公用的依赖放在这里-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2、ps-service作为ps-admin的依赖,pom.xml设置时应该打包为jar包
3、ps-admin引用ps-service中的接口时,只需加上ps-service的依赖即可,ps-admin的pom.xml配置如下
<dependency>
<groupId>com.suning.search</groupId>
<artifactId>ps-service</artifactId>
<version>${project.version}</version>
</dependency>
遇到的问题以及解决方案:
用了上面的依赖以后本以为ps-admin系统已经可以调用ps-service中的URL接口进行redis和hbase的访问了,但是会报错。
报错1:找不到定义redis和hbase的bean
解决方案:由于redis和hbase的bean是用xml文件定义的,所以将redis和hbase的xml配置文件都考到ps-admin系统中,并在SpringMVC-servelet.xml中引用。
报错2:引用了以上的文件又发现了一个问题:ps-admin中没有com.suning.controller这个包,而ps-service中有com.suning.controller这个包,且ps-service有一个URL的拦截方法写在
com.suning.controller.BaseServiceController.java这个类中即
@RequestMapping(value = "/redis111.json", produces = "application/json; charset=UTF-8")
public void getRedisData(@RequestParam("value") String value, HttpServletResponse response)
{...}
当ps-admin系统访问ps-service中的/redis111.json这个URL时页面会报404无法找到这个URL。
解决方案:
在ps-admin系统中增加com.suning.controller这个包,且在SpringMVC-servelet.xml中增加
<context:component-scan base-package="com.suning.controller"/>
这样就可以访问ps-service系统中的/redis111.json这个URL了。
<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>com.suning.search</groupId>
<artifactId>ps</artifactId>
<packaging>pom</packaging>
<name>ps-parent</name>
<version>0.0.1-SNAPSHOT</version>
<modules>
<module>ps-admin</module>
<module>ps-service</module>
</modules>
<dependencyManagement><!--admin和service公用的依赖放在这里-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2、ps-service作为ps-admin的依赖,pom.xml设置时应该打包为jar包
3、ps-admin引用ps-service中的接口时,只需加上ps-service的依赖即可,ps-admin的pom.xml配置如下
<dependency>
<groupId>com.suning.search</groupId>
<artifactId>ps-service</artifactId>
<version>${project.version}</version>
</dependency>
遇到的问题以及解决方案:
用了上面的依赖以后本以为ps-admin系统已经可以调用ps-service中的URL接口进行redis和hbase的访问了,但是会报错。
报错1:找不到定义redis和hbase的bean
解决方案:由于redis和hbase的bean是用xml文件定义的,所以将redis和hbase的xml配置文件都考到ps-admin系统中,并在SpringMVC-servelet.xml中引用。
报错2:引用了以上的文件又发现了一个问题:ps-admin中没有com.suning.controller这个包,而ps-service中有com.suning.controller这个包,且ps-service有一个URL的拦截方法写在
com.suning.controller.BaseServiceController.java这个类中即
@RequestMapping(value = "/redis111.json", produces = "application/json; charset=UTF-8")
public void getRedisData(@RequestParam("value") String value, HttpServletResponse response)
{...}
当ps-admin系统访问ps-service中的/redis111.json这个URL时页面会报404无法找到这个URL。
解决方案:
在ps-admin系统中增加com.suning.controller这个包,且在SpringMVC-servelet.xml中增加
<context:component-scan base-package="com.suning.controller"/>
这样就可以访问ps-service系统中的/redis111.json这个URL了。
相关文章推荐
- maven多工程应用,spring MAVEN多个子模块之间的调用
- ECLIPSE中MAVEN构建spring 多模块工程jar包不能自动扫描问题解决办法
- Springboot+Maven多模块开发 (一)初始化工程(新建第一个web工程)
- spring framework体系结构及内部各模块jar之间的maven依赖关系[即spring引入所需要的所有jar包]
- Springboot整合dubbo构建maven多模块项目(三) - 把server分为api(服务接口定义)和server(服务实现)两个子module
- springboot构建maven多模块工程
- 使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)
- maven 分模块之间调用
- 使用maven创建基于spring的模块|工程|bundle
- Spring使用ComponentScan扫描Maven多模块工程的其它模块
- 使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)
- Maven工程的多模块项目、项目与项目之间的引用
- maven——创建多模块工程
- 在Eclipse中创建Maven多模块工程
- Spring Boot+Maven 工程配置H2内存数据库
- Ubutnu系统下用QT等IDE调用Caffe、SSD框架,编译Caffe实现分类检测等工程应用的方法
- 从头开始搭建spring+springMVC+mybatis 的maven聚合工程
- maven多个子项目、父项目之间的引用问题
- IOS-应用之间调用
- mark! IOS 各APP应用之间的相互调用