Tag: spring 4

如何在Spring(4)上下文中为HSQL配置Hikari CP?

我想在我的Spring 4.0.3环境中使用Hikari CP ,但似乎我错过了一些东西。 我的bean配置如下: ${database.driver} ${database.database.jdbc.url} ${database.port} ${database.name} ${database.user} ${database.password} 但我得到一个例外: Caused by: java.lang.IllegalArgumentException: one of either dataSource or dataSourceClassName must be specified at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:655) at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:66) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) … 15 more 我试图使用HSQL org.hsqldb.jdbc.JDBCDataSource配置dataSourceClassName 那样: org.hsqldb.jdbc.JDBCDataSource 也是这样: org.hsqldb.jdbc.JDBCDataSource 两次我都得到以下exception: Caused by: java.lang.RuntimeException: java.beans.IntrospectionException: Method not […]

env.getProperty不工作Spring PropertyPlaceholderConfigurer

我正在使用spring加载属性文件 当我获得财产价值时 @Value(“${testkey}”)工作正常。 但是当我试图使用环境时 @Resource private Environment environment; environment.getProperty(“testkey”) // returning null

Spring 4和Rest WS集成

我一直在为Spring4和RestWS集成做一个poc。 我是新手,只有几周的曝光。 我正在按照博客的说明进行操作。 据我所知,在Spring 4和restWS设置中,jackson-core / anotation / databind 2用于正确的JSON Java对象的消息转换。 org.springframework.http.converter.json.MappingJackson2HttpMessageConverter也将用于消息转换。 我满足了所有这些要求。 但是,当我尝试启动应用程序时,我得到bean创建exception。 堆 SEVERE:将上下文初始化事件发送到类org.springframework.web.context.ContextLoaderListener的侦听器实例的exception org.springframework.beans.factory.BeanCreationException:创建名为’regionController’的bean时出错:注入自动连接的依赖项失败; 嵌套exception是org.springframework.beans.factory.BeanCreationException:无法自动assembly字段:private org.springframework.web.servlet.View com.leggmason.lmpamfs.controllers.RegionController.jsonView_i; 嵌套exception是org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/applicationContext.xml]中定义的名称为’org.springframework.web.servlet.view.json.MappingJacksonJsonView#0’的bean创建错误: bean的实例化失败; 嵌套exception是org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.springframework.web.servlet.view.json.MappingJacksonJsonView]:构造函数抛出exception; 嵌套exception是java.lang.NoClassDefFoundError:org / codehaus / jackson / map / ObjectMapper at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:304) 在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) 在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) 在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4961) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5455) […]

使用@Scheduled和@EnableScheduling但给出NoSuchBeanDefinitionException

我已经在线跟踪非常简单的示例在Spring中设置了一个cron作业但我每次都在我的Tomcat启动日志中不断收到此错误: 2015-05-25 00:32:58 DEBUG ScheduledAnnotationBeanPostProcessor:191 – Could not find default TaskScheduler bean org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined 2015-05-25 00:32:58 DEBUG ScheduledAnnotationBeanPostProcessor:202 – Could not find default ScheduledExecutorService bean org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined 用于实现cron的2个java类: 1)@Configuration类: @Configuration @EnableScheduling public class ClearTokenStoreCronEnable { final static Logger log = LoggerFactory.getLogger(ClearTokenStoreCronEnable.class); […]

如果占用太多时间,如何取消AsyncRestTemplate HTTP请求?

从开始,我总是混淆如何处理InterruptedException以及如果他们花费太多时间如何正确取消http请求。 我有一个库,我已经为我们的客户提供了两种方法,sync和async。 他们可以调用他们认为适合他们目的的任何方法。 executeSync() – 等到我有结果,返回结果。 executeAsync() – 立即返回一个Future,如果需要,可以在其他事情完成后处理。 它们将传递具有用户ID和超时值的DataKey对象。 我们将根据用户ID确定调用哪台计算机,然后使用该计算机创建一个URL,我们将使用AsyncRestTemplate对URL进行http调用,然后根据它是否成功将响应发送给它们。 我正在使用AsyncRestTemplate 交换方法返回一个ListenableFuture ,我希望在基于NIO的客户端连接中使用异步非阻塞架构,以便请求使用非阻塞IO,这就是我使用AsyncRestTemplate的原因。 这种方法对我的问题定义是否合适? 该库将在非常重的负载下用于生产。 以下是我的界面: public interface Client { // for synchronous public DataResponse executeSync(DataKey key); // for asynchronous public ListenableFuture executeAsync(DataKey key); } 以下是我对界面的实现: public class DataClient implements Client { // using spring 4 AsyncRestTemplate private final AsyncRestTemplate restTemplate = new AsyncRestTemplate(); […]

Spring 4 WebSocket远程代理配置

我设法用Spring 4和Stomp创建简单的Websocket应用程序。 在这里查看我的上一个问题然后我尝试使用远程消息代理(ActiveMQ)。 我刚开始经纪人并改变了 registry.enableSimpleBroker(“/topic”); 至 registry.enableStompBrokerRelay(“/topic”); 它工作。 问题是如何配置代理? 据我所知,在这种情况下,应用程序自动发现localhost上的代理:defaultport,如果我需要将应用程序指向其他机器上的其他代理,该怎么办?

如何在spring4中配置“CommonsMultipartResolver”而不用xml来上传文件

我使用xml配置spring4工作得很好。像这样: <!– –> 当我配置spring4而没有xml.like时: @Configuration @ComponentScan({ “common.user”, “service” }) @EnableWebMvc public class SpringMVCConfig { @Bean public ViewResolver createInternalResourceViewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setContentType(“text/html”); viewResolver.setPrefix(“/view/”); //viewResolver.setSuffix(“.jsp”); return viewResolver; } @Bean public DefaultServletHttpRequestHandler createDefaultServletHttpRequestHandler() { return new DefaultServletHttpRequestHandler(); } @Bean public CommonsMultipartResolver createMultipartResolver() { CommonsMultipartResolver resolver=new CommonsMultipartResolver(); resolver.setDefaultEncoding(“utf-8”); return resolver; } } 它引发了一个例外: 九月 […]

使用Hibernate 5和Spring 4的编程SchemaExport / SchemaUpdate

使用Spring 4和Hibernate 4,我能够使用Reflection从当前环境中获取Hibernate Configuration对象,使用以下代码: @Autowired LocalContainerEntityManagerFactoryBean lcemfb; EntityManagerFactoryImpl emf = (EntityManagerFactoryImpl) lcemfb.getNativeEntityManagerFactory(); SessionFactoryImpl sf = emf.getSessionFactory(); SessionFactoryServiceRegistryImpl serviceRegistry = (SessionFactoryServiceRegistryImpl) sf.getServiceRegistry(); Configuration cfg = null; try { Field field = SessionFactoryServiceRegistryImpl.class.getDeclaredField(“configuration”); field.setAccessible(true); cfg = (Configuration) field.get(serviceRegistry); } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } SchemaUpdate update = new SchemaUpdate(serviceRegistry, cfg); […]

从另一个异步方法调用的Spring异步方法

我正在使用Spring 4并且我注意到一个奇怪的行为……如果我从普通实例方法多次调用异步方法,那么它们都会在不同的线程中调用并随机完成。 但是,如果我从另一个异步方法多次调用异步方法,那么它们按顺序完成。 我有这样的事情: @Async public void nonAsyncMethod() { for (int i = 0; i < 30; i++) { asyncMethod(); } } @Async public void asyncMethod() { … something here } 我正在使用默认的异步执行程序。 我应该使用另一个吗? 但是,这个执行程序不会重用任何线程并且每次都启动另一个线程所以它应该没问题……这可能只是一个巧合吗? 但是我尝试了10次以上,如果我恢复到第一种方法的非异步,那么它们会随机完成