весенний многомодульный проект с другим контекстом

Привет ребята. У меня возникает проблема в многомодульном проекте. В моем проекте есть 3 модуля jar и 1 веб-модуль.

ABZ
ABZ-service
ABZ-dao
ABZ-webapp

в этом «ABZ» — мой родительский модуль, а «ABZ-webapp» — мой веб-модуль. Все запросы обрабатываются через пружинный контейнер. НО теперь я хочу добавить новый модуль для весеннего веб-сервиса REST веб-сервисов. В котором я хотел бы иметь контроллеры Rest.

ABZ-webservice

Мой вопрос здесь в том, что я должен сделать, чтобы мой контекст сканировал структуру упаковки модуля «ABZ-webservice». FYI..ABZ-веб-сервис.

веб.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>

весна-контекст.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-webapp

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

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

RestController в модуле ABZ-webservice

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

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

contextPath: локальный: 8080/ABZ-webapp/

NormalController теперь доступен, но не RestController с этого пути к контроллеру. Я хочу нажать URL-адрес, который находится в моем модуле «ABZ-webservice».


person user3029929    schedule 02.03.2015    source источник
comment
Вы указали зависимость maven в ABZ-webapp для модуля ABZ-webservice?   -  person Alexander    schedule 02.03.2015
comment
да. я упомянул об этом   -  person user3029929    schedule 02.03.2015


Ответы (1)


Вы уже определили сканирование компонентов в spring-context.xml, они в порядке.

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

Теперь определите свои классы как

NormalController в модуле ABZ-webapp

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

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

RestController в модуле ABZ-webservice

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

Если у вас есть какие-либо вопросы, я могу отредактировать свой ответ.

person erhun    schedule 02.03.2015