热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spring+ApacheCXF@Autowire在服务中始终为null

如何解决《Spring+ApacheCXF@Autowire在服务中始终为null》经验,为你挑选了1个好方法。

我使用Apache CXF创建了soap服务,我创建了一个@WebService.在该服务中,我需要注入@Service.当我@Autowire服务该实例仍然为null.

端点初始化

@Bean
    public Endpoint endpointToken() {
        EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken());



        endpoint.publish("/Token");

        return endpoint;
    }

Serivce Class

@WebService(serviceName = "GenerateToken", portName = "TokenPort",
    targetNamespace = "http://service.ws.samp",
    endpointInterface = "com.web.sigel.ws.soap.webServices.GenerateToken")
@Service("AuthService")
public class GenerateLoginToken implements  GenerateToken {

    @Autowired
    private  AuthService authService; //this remains Null whenever i make a call. 



    @Override
    @RequestWrapper(localName = "loginRequest", targetNamespace = "http://service.ws.samp", className = "com.web.sigel.ws.soap.security.LoginRequest")
    public LoginResponse generateToken(LoginRequest loginRequest) {
        LoginResponse loginRespOnse= new LoginResponse();
         String token  = authService.createAuthToken(loginRequest);

         loginResponse.setToken(token);

        return loginResponse;
    }
}

无论如何,我可以注入我的服务.



1> Plog..:

发生这种情况是因为您在Endpoint bean中创建了一个新的GeneratingLoginToken实例:

EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken());

这意味着Spring不知道你的新实例,因为它本身不是Spring bean.相反,您应该自动装配GenerateLoginToken并使用此类的Spring bean实例,该实例应该将所有bean正确连接到它,因此AuthService不应为null:

@Autowire
GenerateLoginToken generateLoginToken;

@Bean
public Endpoint endpointToken() {
    EndpointImpl endpoint = new EndpointImpl(bus, generateLoginToken);



    endpoint.publish("/Token");

    return endpoint;
}


推荐阅读
author-avatar
mobiledu2502870557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有