Сканирование Spring не работает, когда включается фильтр type = annotation, но работает, когда type = regex - PullRequest
0 голосов
/ 29 декабря 2018

Попытка переместить приложение из weblogic в jboss.Застрял в проблемах, связанных с созданием bean-компонентов .... создал образец проекта для имитации проблемы.

проблема приложения упоминается в отдельном вопросе Spring bean-компоненты не создаются в соответствии с требованиями myfaces пожалуйста, проверьтеможете ли вы помочь ..... Следующее сообщение печатается на экране

"JSF 2 + Spring Integration";

, когда я использую тип include-filter для регулярного выражения, но не во время аннотации

package com.mkyong;

import javax.inject.Inject;
import com.mkyong.user.bo.UserBo;

public class UserBean {

@Inject
UserBo userBo;

public void setUserBo(UserBo userBo) {
    this.userBo = userBo;
}

public String printMsgFromSpring() {
    return userBo.getMessage();
}

}

UserBO

package com.mkyong.user.bo;

public interface UserBo{

public String getMessage();

}

UserBoImpl

package com.mkyong.user.bo.impl;

import com.mkyong.user.bo.UserBo;

public class UserBoImpl implements UserBo{

public String getMessage() {

    return "JSF 2 + Spring Integration";

}

}

JSF-файл (xhtml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
  xmlns:h="http://java.sun.com/jsf/html"
  >

<h:body>

    <h1>JSF 2.0 + Spring Example</h1>
<h:outputText value="#{userBean.printMsgFromSpring()}"></h:outputText> 


</h:body>

</html>

контекст приложения - рабочее сканирование

<context:component-scan base-package="com.mkyong">
 <context:include-filter type="regex" expression="com.mkyong.*" />
</context:component-scan>

, тогда как когда я изменяю это значение, приложение не работает

<context:component-scan base-package="com.mkyong">
    <context:include-filter type="annotation" expression="poc.filter.CustomController"/>
</context:component-scan>

пользовательский класс фильтра

package poc.filter;

import javax.inject.Named;

@Named
public @interface CustomController {

}

pom.xml

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>

    <!-- JSF -->
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.13</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.13</version>
    </dependency>

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

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
    </dependency>

    <!-- EL -->
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>el-impl</artifactId>
        <version>2.2</version>
    </dependency>

    <!-- Tomcat 6 need this -->
    <dependency>
        <groupId>com.sun.el</groupId>
        <artifactId>el-ri</artifactId>
        <version>1.0</version>
    </dependency>

    <!-- JSR-330 --> 
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...