java - WebService 类中的 Spring Autowired 不起作用

标签 java spring web-services spring-boot wsimport

我尝试在此类中使用 Autowired,但变量配置始终为 null ...在其他类中 Autowired 有效。

这个项目是jhipster生成的,不知道有没有关系

@Component
@WebService(endpointInterface = "SignaturePortTypeV2")
public class Signature extends SpringBeanAutowiringSupport implements SignaturePortTypeV2 {
    @Autowired
    ConfigServiceBean config;


    @Override
    public ExecuteTokenCmdRespType executeTokenCmd(ExecuteTokenCmdReqType tokenCmdReq) throws ICPMException {
        config.getValue(CommonConfigKey.COMPANY_IDENTIFIER);
        return null
    }
}
@Service
public class ConfigServiceBean implements ConfigServiceLocal {

    @Autowired
    private Environment env;

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getValue(ConfigKey configKey) {
        switch (configKey.getType()) {
            case STRING:
                return (T) env.getProperty(configKey.getKey(), String.class, configKey.getDefaultValue());
            case INT:
                return (T) env.getProperty(configKey.getKey(), Integer.class, configKey.getDefaultValue());
            case LONG:
                return (T) env.getProperty(configKey.getKey(), Long.class, configKey.getDefaultValue());
            case DOUBLE:
                return (T) env.getProperty(configKey.getKey(), Double.class, configKey.getDefaultValue());
            case BOOLEAN:
                return (T) env.getProperty(configKey.getKey(), Boolean.class, configKey.getDefaultValue());
            default:
                throw new IllegalStateException("Type not expected: " + configKey.getType());
        }
    }
}

最佳答案

我看到一些奇怪的事情:

  1. 你说配置变量为空,但是它用@Autowired注释。它应该在 Spring Context Load 中失败,因为需要注入(inject)(@Autowired 默认情况下具有 required = true 属性)。所以第一个问题是:bean Signature 是否正在创建?可能是您的 @Configuration 注释类(或者您创建的 spring 上下文)正在查看另一个包。
  2. 方法executeTokenCmd 始终返回null。它只是从 env 中检索一个值,然后返回 null。这确实没有道理。这可能是您错误的原因吗?

如果您可以粘贴错误跟踪,将会有所帮助。

关于java - WebService 类中的 Spring Autowired 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54450017/

相关文章:

java - 如何使用 spring security 为特定端点添加 HTTP 基本身份验证?

java - 使用 jmeter 和 http 请求测试 Soap Web 服务

.net - 我应该使用 Web API 还是 Web 方法?

java - 与开放办公数据库的 JDBC 连接

java - 在不向客户端公开方法的情况下更新 JMX MBean 属性

java - JScrollPane 不起作用

Java-Reflection-Spring如何识别参数是用户定义对象还是Primitive Type

javascript - 使用 Javascript for Sharepoint 的基于表单的身份验证

java - 使用 Barcode4j 为多组 AI 和数据生成 EAN128 代码的问题

java - 可以同时使用 Hibernate 和 Tomcat 连接池吗?