Java 弹簧&x2B;服务中的Apache CXF@Autowire始终为空
我已经使用ApacheCXF创建了soap服务,我已经创建了@WebService。在该服务中,我需要注入@service。当I@Autowire创建该服务时,该实例将保持空 端点已初始化Java 弹簧&x2B;服务中的Apache CXF@Autowire始终为空,java,spring,soap,cxf,Java,Spring,Soap,Cxf,我已经使用ApacheCXF创建了soap服务,我已经创建了@WebService。在该服务中,我需要注入@service。当I@Autowire创建该服务时,该实例将保持空 端点已初始化 @Bean public Endpoint endpointToken() { EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken()); endpoint.publish("/
@Bean
public Endpoint endpointToken() {
EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken());
endpoint.publish("/Token");
return endpoint;
}
服务类
@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;
}
}
不管怎样,我可以注入我的服务 发生这种情况是因为您正在端点bean中创建GeneratingLoginToken的新实例:
EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken());
这意味着Spring不知道您的新实例,因为它本身不是Springbean。相反,您应该自动连接GenerateLoginToken并使用此类的SpringBean实例,该实例应将所有bean正确连接到它,因此AuthService不应为null:
@Autowire
GenerateLoginToken generateLoginToken;
@Bean
public Endpoint endpointToken() {
EndpointImpl endpoint = new EndpointImpl(bus, generateLoginToken);
endpoint.publish("/Token");
return endpoint;
}
这是因为您正在端点bean中创建GeneratingLoginToken的新实例:
EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken());
这意味着Spring不知道您的新实例,因为它本身不是Springbean。相反,您应该自动连接GenerateLoginToken并使用此类的SpringBean实例,该实例应将所有bean正确连接到它,因此AuthService不应为null:
@Autowire
GenerateLoginToken generateLoginToken;
@Bean
public Endpoint endpointToken() {
EndpointImpl endpoint = new EndpointImpl(bus, generateLoginToken);
endpoint.publish("/Token");
return endpoint;
}
能否显示您的AuthService类?/@组件公共类AuthService{///@Autowired private AuthenticationManager AuthenticationManager;//@Autowired private UserDetails服务UserDetails服务;//@Autowired private TokenService generateToken;}能否显示您的AuthService类?/@组件公共类AuthService{///@Autowired private AuthenticationManager AuthenticationManager;//@Autowired private UserDetails服务UserDetails服务;//@Autowired private TokenService generateToken;}