Java 春季4&x2B;泽西集成@Autowired

Java 春季4&x2B;泽西集成@Autowired,java,spring,rest,maven,spring-data-neo4j,Java,Spring,Rest,Maven,Spring Data Neo4j,我尝试了很多方法,但我的资源中的“searchservice”似乎是随机实例化的。SearchResource中的SearchService几乎总是空的 如您所见,我添加了SpringJersey依赖项 这是我的密码: SearchResource(泽西岛,尝试实例化searchService) @Path(“搜索”) @组成部分 公共类搜索资源{ 私有静态最终记录器=Logger.getLogger(SearchResource.class); @上下文 私有信息上下文; @自动连线 私人搜索

我尝试了很多方法,但我的资源中的“searchservice”似乎是随机实例化的。SearchResource中的SearchService几乎总是空的

如您所见,我添加了SpringJersey依赖项

这是我的密码: SearchResource(泽西岛,尝试实例化searchService)

@Path(“搜索”)
@组成部分
公共类搜索资源{
私有静态最终记录器=Logger.getLogger(SearchResource.class);
@上下文
私有信息上下文;
@自动连线
私人搜索服务;
/**
*创建SearchResource的新实例
*/
公共搜索资源(){
}
/**
*检索com.gehc.mpse.backend.ws.SearchResource实例的表示形式
*@param搜索
*@param
*@param作者
*@返回java.lang.String的实例
*/
@得到
@产生(MediaType.APPLICATION_JSON)
公共响应搜索(@QueryParam(“查询”)字符串搜索,@QueryParam(“作者”)列表作者){
System.out.println(“searchservice:+searchservice”);
Response res=searchService.searchQuery(搜索);
返回res;
}
公共搜索服务getSearchService(){
返回搜索服务;
}
public void setSearchService(搜索服务搜索服务){
this.searchService=searchService;
}
我的班级搜索服务:

@Component
public class SearchService {

    private static final Logger LOGGER = Logger.getLogger(SearchService.class);
    @Autowired
    private IPublicationRepository repository;
    @Autowired
    private Neo4jTemplate template;
    private static final Integer PAGE_SIZE = 20;

    public SearchService() {
        LOGGER.debug("search service initialzed " + this);
    }

    public Response searchQuery(String query) {

        PageRequest request
                = new PageRequest(1, PAGE_SIZE);
        LOGGER.debug("repo : " + repository);
        Page<Publication> res = repository.findPublicationByTitle(query, request);
        //repository.query(query, null);
        return Response.ok().entity(res.getContent()).build();
    }

    public IPublicationRepository getRepository() {
        return repository;
    }

    public void setRepository(IPublicationRepository repository) {
        this.repository = repository;
    }

    public Neo4jTemplate getTemplate() {
        return template;
    }

    public void setTemplate(Neo4jTemplate template) {
        this.template = template;
    }

}
@组件
公共类搜索服务{
私有静态最终记录器=Logger.getLogger(SearchService.class);
@自动连线
私有IPPublicationRepository;
@自动连线
私有Neo4jTemplate模板;
私有静态最终整数页面大小=20;
公共搜索服务(){
调试(“搜索服务已初始化”+此);
}
公共响应searchQuery(字符串查询){
页面请求请求
=新页面请求(1,页面大小);
调试(“repo:+repository”);
Page res=repository.findPublicationByTitle(查询、请求);
//repository.query(query,null);
返回Response.ok().entity(res.getContent()).build();
}
公共IPPublicationRepository getRepository(){
返回存储库;
}
public void setRepository(IPPublicationRepository){
this.repository=存储库;
}
公共Neo4jTemplate getTemplate(){
返回模板;
}
公共void setTemplate(Neo4jTemplate模板){
this.template=模板;
}
}
我的pom.xml

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <version>3.2.0.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.neo4j</groupId>
                <artifactId>neo4j</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.neo4j</groupId>
                <artifactId>neo4j-cypher</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.neo4j</groupId>
                <artifactId>neo4j-kernel</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- Spring [End] -->
    <!--neo4j -->
    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j</artifactId>
        <version>2.1.5</version>
    </dependency>
    <dependency>
        <groupId>org.neo4j.app</groupId>
        <artifactId>neo4j-server</artifactId>
        <version>2.1.5</version>
    </dependency>
    <!-- end neo4j -->
    <dependency>
        <groupId>org.glassfish.metro</groupId>
        <artifactId>webservices-rt</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.7</version>
    </dependency>

    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-java2wsdl</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ws.commons.axiom</groupId>
        <artifactId>axiom-api</artifactId>
        <version>1.2.14</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ws.commons.axiom</groupId>
        <artifactId>axiom-impl</artifactId>
        <version>1.2.14</version>
    </dependency>
    <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>0.9.9-RC1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-spring3</artifactId>
        <version>2.13</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>            
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-server</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.glassfish.hk2</groupId>
                <artifactId>hk2</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.13</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

org.springframework
弹簧芯
${spring.version}
公用记录
公用记录
org.springframework
spring上下文
${spring.version}
org.springframework
spring上下文支持
${spring.version}
org.springframework
弹簧网
${spring.version}
编译
org.springframework
春豆
${spring.version}
org.springframework
德克萨斯州春季
${spring.version}
org.springframework.data
spring-data-neo4j
3.2.0.1发布
org.neo4j
neo4j
org.neo4j
neo4j-cypher
org.neo4j
neo4j核
org.neo4j
neo4j
2.1.5
org.neo4j.app
neo4j服务器
2.1.5
org.glassfish.metro
Web服务rt
2.3
假如
爪哇
javaeewebapi
7
假如
org.slf4j
slf4j api
1.7.7
org.slf4j
slf4j-log4j12
1.7.7
org.apache.axis2
axis2
1.6.2
org.apache.axis2
axis2-java2wsdl
1.6.2
org.apache.ws.commons.axiom
axiom api
1.2.14
org.apache.ws.commons.axiom
简化公理
1.2.14
组织反思
反思
0.9.9-RC1
org.glassfish.jersey.ext
泽西-斯普林3
2.13
org.springframework
春天
org.springframework
弹簧芯
org.springframework
弹簧网
org.springframework
春豆
org.glassfish.jersey.core
泽西服务器
org.glassfish.jersey.containers
jersey容器servlet核心
org.glassfish.hk2
hk2
org.glassfish.jersey.media
泽西媒体公司
2.13
假如
My web.xml:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

    <display-name>PMSE</display-name>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener
        </listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:spring/context.xml</param-value>
    </context-param>
</web-app>

PMSE
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
上下文配置位置
classpath*:spring/context.xml
这是我的代码:SearchResource(泽西岛,尝试实例化searchService)

请注意,Jersey不会实例化您的SearchService。因为您在资源上有一个
@Component
注释,SearchService应该通过Spring连接到SearchResource,Jersey应该从Spring检索SearchResource实例

您的Spring上下文是否创建了两次(一次由Jersey创建,一次由Spring的ContextLoaderLis创建)
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

    <display-name>PMSE</display-name>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener
        </listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:spring/context.xml</param-value>
    </context-param>
</web-app>