2015-03-02 40 views
0

Hy伙计。 我在多模块项目中遇到问题。我的项目有3个jar模块和1个web模块。不同背景下的弹簧多模块项目

ABZ 
ABZ-service 
ABZ-dao 
ABZ-webapp 

在这'ABZ'是我的父模块和'ABZ-webapp'是我的网站模块。所有请求正在通过弹簧容器进行处理。 但是现在我想为web服务spring REST web服务添加新的模块。我想在其中有REst控制器。

ABZ-webservice 

我的问题是,我应该怎么做才能让我的上下文扫描'ABZ-webservice'模块的打包结构。 FYI..ABZ-webservice。

的web.xml

<servlet> 
    <servlet-name>ABZ</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
     <servlet-name>ABZ</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

弹簧的context.xml

<context:component-scan base-package="com.ABZ.rest.controller" /> 
<context:component-scan base-package="com.ABZ.web.controller" /> 

<bean id="templateResolver" 
     class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".html" /> 
     <property name="templateMode" value="HTML5" /> 
     <!-- Template cache is set to false (default is true). --> 
     <property name="cacheable" value="false" /> 
     <property name="characterEncoding" value="UTF-8" /> 

    </bean> 

NormalController在ABZ-web应用模块

package com.ABZ.web.controller; 
@controller 
@RequestMappig (--) 
public class NormalController{ 

    @RequestMappig (--) 
    public String test() 
    { 
    } 
} 

RestController在ABZ-web服务模块

package com.ABZ.rest.controller; 
@controller 
@RequestMappig (--) 
public class RestController{ 

    @RequestMappig (--) 
    public String test() 
    { 
    } 
} 

的contextPath:本地主机:8080/ABZ-的webapp/

NormalController正在被访问,但不RestController 现在从该控制器路上,我想打URL这是我的 'ABZ Web网页' 模块

+0

您是否在'ABZ-webapp'中为'ABZ-webservice'模块指定了一个Maven依赖关系? – Alexander 2015-03-02 12:14:27

+0

是的。我已经提到过它 – user3029929 2015-03-02 12:16:49

回答

0

你已经在弹簧context.xml中定义组件扫描他们是OK

<context:component-scan base-package="com.ABZ.rest.controller" /> 
<context:component-scan base-package="com.ABZ.web.controller" /> 

现在定义你的类作为

NormalCon troller在ABZ-web应用模块

package com.ABZ.web.controller; 
@controller 
@RequestMappig (value="/web") 
public class NormalController{ 

    @RequestMappig (value="/test") 
    public String test() 
    { 
    } 
} 

RestController在ABZ-Web服务模块

package com.ABZ.rest.controller; 
@controller 
@RequestMappig (value="/rest") 
public class RestController{ 

    @RequestMappig (value="/test") 
    public String test() 
    { 
    } 
} 

,使您的测试样

http://localhost:8080/webAppName/web/test

http://localhost:8080/webAppName/rest/test

如果您有任何问题,我可以编辑我的答案。