1
Apache CXF를 사용하여 비누 서비스를 만들고 있는데, @WebService를 만들었습니다. 이 서비스에서는 @Service를 주입해야합니다. @Autowire 해당 서비스 인스턴스가 null로 남아 있습니다.Spring + Apache CXF @Autowire 서비스에서 항상 null
는 엔드 포인트는 내 서비스를 삽입 할 수 어쨌든 거기
@Bean
public Endpoint endpointToken() {
EndpointImpl endpoint = new EndpointImpl(bus, new GenerateLoginToken());
endpoint.publish("/Token");
return endpoint;
}
Serivce 클래스
@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;
}
}
를 초기화. 당신이 당신의 엔드 포인트 콩에 GeneratingLoginToken의 새로운 인스턴스를 생성하기 때문에
당신이 당신의 AuthService 클래스를 보여줄 수 있습니까? – Plog
// @ Component 공용 클래스 AuthService { //// @Autowired private AuthenticationManager authenticationManager; // @ Autowired 개인 UserDetailsService userDetailsService; // @ Autowired 개인 TokenService generateToken; } –