我是Spring的新手并且正在开发一个应用程序。我在catalina中收到错误日志,如下所示。我已经通过服务自动控制我的控制器,并使用dao服务。
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.typeset.blog.services.BlogService com.typeset.blog.controllers.MainController.blogService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.typeset.blog.dao.BlogDao com.typeset.blog.services.BlogService.dao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogDao' defined in file [C:\Users\Rumela\Downloads\blog-engine\blog-with-in-place-comments-master\blog\target\blog-with-comments\WEB-INF\classes\com\typeset\blog\dao\BlogDao.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor#0': Cannot resolve reference to bean 'cacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
... 58 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.typeset.blog.dao.BlogDao com.typeset.blog.services.BlogService.dao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogDao' defined in file [C:\Users\Rumela\Downloads\blog-engine\blog-with-in-place-comments-master\blog\target\blog-with-comments\WEB-INF\classes\com\typeset\blog\dao\BlogDao.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor#0': Cannot resolve reference to bean 'cacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1202)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1127)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1051)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:949)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
... 60 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.typeset.blog.dao.BlogDao com.typeset.blog.services.BlogService.dao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogDao' defined in file [C:\Users\Rumela\Downloads\blog-engine\blog-with-in-place-comments-master\blog\target\blog-with-comments\WEB-INF\classes\com\typeset\blog\dao\BlogDao.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor#0': Cannot resolve reference to bean 'cacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
... 71 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blogDao' defined in file [C:\Users\Rumela\Downloads\blog-engine\blog-with-in-place-comments-master\blog\target\blog-with-comments\WEB-INF\classes\com\typeset\blog\dao\BlogDao.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor#0': Cannot resolve reference to bean 'cacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1127)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1051)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:949)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
... 73 more
Caused by: org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor#0': Cannot resolve reference to bean 'cacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:218)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:109)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:447)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:333)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:293)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1571)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
... 82 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor#0': Cannot resolve reference to bean 'cacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1469)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.aop.support.AbstractBeanFactoryPointcutAdvisor.getAdvice(AbstractBeanFactoryPointcutAdvisor.java:88)
at org.springframework.aop.framework.CglibAopProxy$ProxyCallbackFilter.hashCode(CglibAopProxy.java:939)
at org.springframework.cglib.proxy.Enhancer$EnhancerKey$$KeyFactoryByCGLIB$$4ce19e8f.hashCode(<generated>)
at org.springframework.cglib.core.DefaultNamingPolicy.getClassName(DefaultNamingPolicy.java:39)
at org.springframework.cglib.core.AbstractClassGenerator.getClassName(AbstractClassGenerator.java:72)
at org.springframework.cglib.core.AbstractClassGenerator.getClassName(AbstractClassGenerator.java:66)
at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:474)
at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:202)
... 89 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Cannot resolve reference to bean 'ehcache' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1469)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
... 112 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcache' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
... 122 more
Caused by: net.sf.ehcache.CacheException: java.io.IOException: Access is denied
at net.sf.ehcache.DiskStorePathManager$DiskStorePath.<init>(DiskStorePathManager.java:331)
at net.sf.ehcache.DiskStorePathManager.resolveAndLockIfNeeded(DiskStorePathManager.java:145)
at net.sf.ehcache.DiskStorePathManager.getFile(DiskStorePathManager.java:262)
at net.sf.ehcache.DiskStorePathManager.getFile(DiskStorePathManager.java:251)
at net.sf.ehcache.store.disk.DiskStorageFactory.<init>(DiskStorageFactory.java:127)
at net.sf.ehcache.store.disk.DiskStore.create(DiskStore.java:154)
at net.sf.ehcache.store.disk.DiskStore.createCacheStore(DiskStore.java:182)
at net.sf.ehcache.Cache.initialise(Cache.java:1216)
at net.sf.ehcache.CacheManager.initializeEhcache(CacheManager.java:1357)
at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:1423)
at net.sf.ehcache.CacheManager.addConfiguredCaches(CacheManager.java:819)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:498)
at net.sf.ehcache.CacheManager.init(CacheManager.java:394)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:269)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1103)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1079)
at net.sf.ehcache.CacheManager.create(CacheManager.java:1062)
at org.springframework.cache.ehcache.EhCacheManagerFactoryBean.afterPropertiesSet(EhCacheManagerFactoryBean.java:144)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562)
... 129 more
Caused by: java.io.IOException: Access is denied
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at net.sf.ehcache.DiskStorePathManager$DiskStorePath.<init>(DiskStorePathManager.java:322)
... 148 more
我的调度程序servelet.xml看起来像
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.1.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache-4.1.xsd">
<context:component-scan base-package="com.typeset.blog" />
<cache:annotation-driven />
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="ehcache" />
</bean>
<bean id="ehcache"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" />
<property name="shared" value="true" />
</bean>
<context:annotation-config />
<task:annotation-driven />
<mvc:annotation-driven />
<context:property-placeholder location="classpath*:app.properties" />
<bean id="springDataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/blogWithComments" />
<property name="username" value="***" />
<property name="password" value="***" />
<property name="initialSize" value="20" />
<property name="maxTotal" value="30" />
</bean>
</beans>
我的dao类看起来像这样:
@Component
public class BlogDao {
@Autowired
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
private static final Logger logger = LoggerFactory.getLogger(BlogDao.class);
@PostConstruct
public void init(){
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public String addBlog(Blog blog){
String id=Long.toString((long)(Math.abs(UUID.randomUUID().getLeastSignificantBits()/Math.pow(10,11))));
blog.setId(id);
Object[] params = new Object[] {id, blog.getTitle(), blog.getPlainText()};
int[] types = new int[] { Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
int rowsUpdated=jdbcTemplate.update(Constants.ADD_BLOG, params, types);
DetailedBlog detailedBlog=new DetailedBlog(id, blog.getTitle(), blog.getPlainText());
int i=0, rowsUpdatedP=0;
for(Paragraph p:detailedBlog.getParagraphs()){
params = new Object[] {id, p.getParagraphId(),p.getParagraph()};
types = new int[] { Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
rowsUpdatedP=jdbcTemplate.update(Constants.ADD_BLOG_PARAGRAPHS, params, types);
i++;
}
if(rowsUpdated==1 && rowsUpdatedP==detailedBlog.getParagraphs().length){
return Constants.SUCCESS_MESSAGE;
}
else
return Constants.ERROR_MESSAGE;
}
@Cacheable("blog_cache")
public Blog[] getAllBlogs() {
List<Map<String, Object>> list=jdbcTemplate.queryForList(Constants.GET_ALL_BLOGS);
Class blogClass=Blog.class;
Method[] methods = blogClass.getMethods();
Map<String, Method> map=new HashMap<String, Method>();
String name="";
Blog[] blogs=new Blog[list.size()];
for(Method m:methods){
name=m.getName();
//extract all setters
if(name.contains("set"))
map.put(name.substring(name.indexOf("set")+3).toLowerCase(), m);
}
logger.info("all setters: {}",map);
int i=0;
Blog blog=null;
for(Map<String, Object> row: list){
logger.info("Row: {}",row);
blog=new Blog();
for(String value: row.keySet()){
try {
//populate the pojo
if(map.get(value.toLowerCase())!=null)
map.get(value.toLowerCase()).invoke(blog, row.get(value));
} catch (Exception e) {
logger.error("Error",e);
}
}
logger.info(""+blog);
blogs[i]=blog;
i++;
}
return blogs;
}
public DetailedBlog getDetailedBlog(String id) {
DetailedBlog detailedBlog=new DetailedBlog();
detailedBlog.setId(id);
Map<String, Object> blog=jdbcTemplate.queryForMap(Constants.SELECT_BLOG+id+"'");
List<Map<String, Object>> paragraphs=jdbcTemplate.queryForList(Constants.SELECT_PARAGRAPHS+id+"'");
List<Map<String, Object>> comments=jdbcTemplate.queryForList(Constants.SELECT_COMMENTS+id+"'");
detailedBlog.setTitle((String)blog.get("title"));
detailedBlog.setPlainText((String)blog.get("plainText"));
Paragraph para=null;
List<Paragraph> list=new ArrayList<Paragraph>();
Map<String,Paragraph> map = new HashMap<String, Paragraph>();
logger.debug(comments.size()+" "+paragraphs.size());
if(paragraphs.size()>0){
for(Map<String, Object> paragraph: paragraphs){
para=new Paragraph();
para.setParagraphId((String)paragraph.get("paragraphId"));
para.setParagraph((String)paragraph.get("paragraph"));
map.put(para.getParagraphId(), para);
}
logger.debug("map "+map.toString());
for(Map<String, Object> comment: comments){
para=map.get(comment.get("paragraphId"));
logger.debug("paragraph "+para.toString());
List<String> comm=para.getComments();
if(comm==null){
comm=new ArrayList<String>();
para.setComments(comm);
}
comm.add((String)comment.get("comment"));
logger.debug("comment "+comm.toString());
}
}
logger.debug(map.toString());
detailedBlog.setParagraphs(map.values().toArray(new Paragraph[0]));
return detailedBlog;
}
public String addComment(String blogId, String paraId, String comment) {
String id=Long.toString((long)(Math.abs(UUID.randomUUID().getLeastSignificantBits()/Math.pow(10,11))));
Object[] params = new Object[] {blogId, paraId, id, comment};
int[] types = new int[] { Types.VARCHAR, Types.VARCHAR, Types.VARCHAR,Types.VARCHAR};
int rowsUpdated=0;
try{
rowsUpdated=jdbcTemplate.update(Constants.ADD_COMMENT, params, types);
}catch(Exception e){
logger.error("error",e);
}
if(rowsUpdated==1){
return Constants.SUCCESS_MESSAGE;
}
else
return Constants.ERROR_MESSAGE;
}
}
有人可以帮帮我吗?enter code here
答案 0 :(得分:0)
at java.io.File.createNewFile(File.java:1012)
抛出Exception
因为创建新文件的方法应该具有足够的权限来创建/编辑文件,实际上,您会收到错误消息,告诉您没有权限。
您需要更改要在其中创建文件的目录的访问控制列表(ACL)
答案 1 :(得分:0)
我会检查ehcache.xml,可能你有类似的东西
<diskStore path="/auto/default/path"/>
看起来那里指定的路径不正确,或者您的用户没有权限在那里写文件。