Java 弹簧外形配置

Java 弹簧外形配置,java,spring,web-services,soap,spring-boot,Java,Spring,Web Services,Soap,Spring Boot,我有一个名为“stage”的配置文件,我正在尝试实现一个web服务,但每当我提出请求时,我都会遇到一些错误,每当我删除配置文件注释时,它都能正常工作,我真的不知道为什么它不能与配置文件一起工作以下是一些类: @SpringBootApplication public class MyApp{ public static void main(String[] args) { AnnotationConfigApplicationContext context = new

我有一个名为“stage”的配置文件,我正在尝试实现一个web服务,但每当我提出请求时,我都会遇到一些错误,每当我删除配置文件注释时,它都能正常工作,我真的不知道为什么它不能与配置文件一起工作以下是一些类:

@SpringBootApplication
public class MyApp{

    public static void main(String[] args) {
         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
          context.getEnvironment().setActiveProfiles("stage");
          context.register(MyApp.class);    
          SpringApplication.run(MyApp.class, args);

    }

}
@Profile("stage")
@Configuration
@PropertySource(value = { "classpath:jdbc.properties" })
public class StageDSConfig {

    @Value("${jdbc.driverClassName}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String jdbcURL;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }

    @Bean
    public DataSource dataSource() {

        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(jdbcURL);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        DatabasePopulatorUtils.execute(createDatabasePopulator(), dataSource);
        return dataSource;
    }

    private DatabasePopulator createDatabasePopulator() {
        ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
        databasePopulator.setContinueOnError(true);
        databasePopulator.addScript(new ClassPathResource("schema-mysql.sql"));
        databasePopulator.addScript(new ClassPathResource("data-mysql.sql"));
        return databasePopulator;
    }
}
@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {

    @Bean
    public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
        MessageDispatcherServlet servlet = new MessageDispatcherServlet();
        servlet.setApplicationContext(applicationContext);

        servlet.setTransformWsdlLocations(true);
        return new ServletRegistrationBean(servlet, "/ws/*");
    }

    @Bean(name = "ws")
    public DefaultWsdl11Definition defaultActionWsdl11Definition(XsdSchema actionSchema) {
        DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
        wsdl11Definition.setPortTypeName("ActionPort");
        wsdl11Definition.setLocationUri("/ws");
        wsdl11Definition.setTargetNamespace("http://www.example.com/ws");
        wsdl11Definition.setSchema(actionSchema);
        return wsdl11Definition;
    }

    @Bean
    public XsdSchema wsSchema() {
        return new SimpleXsdSchema(new ClassPathResource("ws.xsd"));
    }

}
这是错误日志:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Server</faultcode>
         <faultstring xml:lang="en">PreparedStatementCallback; bad SQL grammar [INSERT INTO logs(ipAddress,actionn,requestBody) values(?,?,?)]; nested exception is java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: LOGS</faultstring>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP-ENV:服务器
PreparedStatementCallback;错误的SQL语法[插入日志(ipAddress、actionn、requestBody)值(?,?)];嵌套异常为java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象:日志

我认为您没有正确激活配置文件。使用springBoot,您可以如下设置配置文件:

new SpringApplicationBuilder(MyApp.class).profiles("stage").run(args);
或者,通过环境变量:

System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "stage");
SpringApplication.run(MyApp.class, args);

我认为问题在于您实际上没有激活“stage”配置文件,因此上下文缺少StageDSConfig类中的所有bean,因此没有创建任何模式

是的,谢谢,这就是问题所在,我没有正确激活配置文件