Hi,
The steps you have taken are correct.
It's been a long time I haven't tested it and there were some changes in
the spring plumbery since then.
I will try to look at this in the coming days.
Also be aware that the Hbase implementation is very basic, and thus will
be inefficient for a production deployement (no index... upon the fact
that you would certainly be the first user... and linux would be a
better plaform for this).
Thx, Eric
On 06/06/2013 13:40, Hyukjin Kwon wrote:
Since I am interested in handling NoSQL such as HBase on a distributed
environment, I started to do a bit of practice with James mailbox and HBase.
I found the page explaining set-up (
http://james.apache.org/mailbox/mailbox-hbase.html) and I tired to follow
it which is just putting hbase-site.xml file from HBase configuration to
jameshome/conf. However, it seems there need to be something done more.
After googling finally I have got a bit of clues and I changed mailbox.conf
file
from
<mailbox>
<provider>jpa</provider>
</mailbox>
to
<mailbox>
<provider>hbase</provider>
</mailbox>
, uncommented the beans in spring-mailbox-hbase.xml and changed
sprint-server.xml file
from
<import
resource="classpath:META-INF/org/apache/james/spring-mailbox-hbase.xml" />
to
<import resource="classpath:META-INF/org/apache/james/spring-mailbox.xml" />
Somehow it looked solving each problem bit by bit but I cannot find what I
should do to make it working.
Now, I am getting exception which is,
INFO 23:23:39,690 |
org.apache.james.container.spring.context.JamesServerApplicationContext |
Refreshing
org.apache.james.container.spring.context.JamesServerApplicationContext@1193779:
startup date [Wed Jun 05 23:23:39 BST 2013]; root of context hierarchy
INFO 23:23:41,550 |
org.apache.james.container.spring.context.JamesServerApplicationContext |
Bean 'logprovider' of type [class
org.apache.james.container.spring.lifecycle.LogProviderImpl] is not
eligible for getting processed by all BeanPostProcessors (for example: not
eligible for auto-proxying)
INFO 23:23:42,261 | james.mailrepositorystore | JamesMailStore init...
INFO 23:23:42,274 | james.mailrepositorystore | Registering Repository
instance of class org.apache.james.mailrepository.file.FileMailRepository
to handle file protocol requests for repositories with key file
INFO 23:23:42,275 | james.mailrepositorystore | Registering Repository
instance of class org.apache.james.mailrepository.jdbc.JDBCMailRepository
to handle db protocol requests for repositories with key db
INFO 23:23:42,275 | james.mailrepositorystore | Registering Repository
instance of class org.apache.james.mailrepository.jdbc.JDBCMailRepository
to handle dbfile protocol requests for repositories with key dbfile
INFO 23:23:42,275 | james.mailrepositorystore | Registering Repository
instance of class org.apache.james.mailrepository.file.MBoxMailRepository
to handle mbox protocol requests for repositories with key mbox
INFO 23:23:43,002 | james.dnsservice | Autodiscovery is enabled - trying
to discover your system's DNS Servers
INFO 23:23:43,013 | james.dnsservice | Adding autodiscovered server
192.168.1.254
INFO 23:23:43,014 | james.dnsservice | Adding autodiscovered search path
config.
INFO 23:23:43,014 | james.dnsservice | DNS Server is: 192.168.1.254
INFO 23:23:43,027 | james.dnsservice | Registered cache, resolver and
search paths as DNSJava defaults
INFO 23:23:43,516 | james.domainlist | Set autodetect to: true
INFO 23:23:43,517 | james.domainlist | Set autodetectIP to: true
INFO 23:23:46,318 | james.mailprocessor | Matcher All instantiated.
INFO 23:23:46,342 | james.mailprocessor | Mailet PostmasterAlias
instantiated.
INFO 23:23:46,347 | james.mailprocessor | Matcher RelayLimit=30
instantiated.
INFO 23:23:46,352 | james.mailprocessor | Mailet Null instantiated.
INFO 23:23:46,356 | james.mailprocessor | Matcher SMTPAuthSuccessful
instantiated.
INFO 23:23:46,361 | james.mailprocessor | Mailet ToProcessor instantiated.
INFO 23:23:46,361 | james.mailprocessor | Matcher All instantiated.
INFO 23:23:46,362 | james.mailprocessor | Mailet ToProcessor instantiated.
INFO 23:23:46,928 | james.mailprocessor | Matcher SMTPAuthSuccessful
instantiated.
INFO 23:23:46,934 | james.mailprocessor | Mailet SetMimeHeader
instantiated.
INFO 23:23:46,941 | james.mailprocessor | Matcher RecipientIsLocal
instantiated.
INFO 23:23:46,946 | james.mailprocessor | Mailet RecipientToLowerCase
instantiated.
INFO 23:23:46,946 | james.mailprocessor | Matcher RecipientIsLocal
instantiated.
ERROR 23:23:46,969 | james.mailprocessor | Unable to init mailet
LocalDelivery: org.apache.mailet.MailetException: Could not load mailet
(LocalDelivery);
nested exception is:
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'org.apache.james.transport.mailets.LocalDelivery':
Injection of resource dependencies failed; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'hbase-mailboxmanager' is defined
org.apache.mailet.MailetException: Could not load mailet (LocalDelivery);
nested exception is:
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'org.apache.james.transport.mailets.LocalDelivery':
Injection of resource dependencies failed; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'hbase-mailboxmanager' is defined
at
org.apache.james.container.spring.bean.factory.mailetcontainer.AbstractLoaderBeanFactory.loadFailed(AbstractLoaderBeanFactory.java:60)
at
org.apache.james.container.spring.bean.factory.mailetcontainer.MailetLoaderBeanFactory.getMailet(MailetLoaderBeanFactory.java:55)
at
org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.parseConfiguration(AbstractStateMailetProcessor.java:381)
at
org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.init(AbstractStateMailetProcessor.java:119)
at
org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.init(CamelMailetProcessor.java:101)
at
org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor.createMailProcessor(CamelCompositeProcessor.java:103)
at
org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.init(AbstractStateCompositeProcessor.java:181)
at
org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor.init(CamelCompositeProcessor.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:346)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:299)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:132)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1448)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at
org.apache.james.container.spring.context.JamesServerApplicationContext.<init>(JamesServerApplicationContext.java:39)
at
org.apache.james.app.spring.JamesAppSpringMain.init(JamesAppSpringMain.java:61)
at
org.apache.james.app.spring.JamesAppSpringMain.main(JamesAppSpringMain.java:42)
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'org.apache.james.transport.mailets.LocalDelivery':
Injection of resource dependencies failed; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'hbase-mailboxmanager' is defined
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:286)
at
org.apache.james.container.spring.bean.factory.mailetcontainer.AbstractLoaderBeanFactory.load(AbstractLoaderBeanFactory.java:45)
at
org.apache.james.container.spring.bean.factory.mailetcontainer.MailetLoaderBeanFactory.getMailet(MailetLoaderBeanFactory.java:45)
... 29 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'hbase-mailboxmanager' is defined
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:442)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:549)
at
org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)
at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)
... 35 more
ERROR 23:23:46,972 | james.mailprocessor | Caused by nested exception:
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'org.apache.james.transport.mailets.LocalDelivery':
Injection of resource dependencies failed; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'hbase-mailboxmanager' is defined
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:286)
at
org.apache.james.container.spring.bean.factory.mailetcontainer.AbstractLoaderBeanFactory.load(AbstractLoaderBeanFactory.java:45)
at
org.apache.james.container.spring.bean.factory.mailetcontainer.MailetLoaderBeanFactory.getMailet(MailetLoaderBeanFactory.java:45)
at
org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.parseConfiguration(AbstractStateMailetProcessor.java:381)
at
org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.init(AbstractStateMailetProcessor.java:119)
at
org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.init(CamelMailetProcessor.java:101)
at
org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor.createMailProcessor(CamelCompositeProcessor.java:103)
at
org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.init(AbstractStateCompositeProcessor.java:181)
at
org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor.init(CamelCompositeProcessor.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:346)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:299)
at
org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:132)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1448)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at
org.apache.james.container.spring.context.JamesServerApplicationContext.<init>(JamesServerApplicationContext.java:39)
at
org.apache.james.app.spring.JamesAppSpringMain.init(JamesAppSpringMain.java:61)
at
org.apache.james.app.spring.JamesAppSpringMain.main(JamesAppSpringMain.java:42)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'hbase-mailboxmanager' is defined
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:442)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:549)
at
org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:150)
at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at
org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303)
... 35 more
Could you please help me to do it? it seems there are not enough
explanation to do it but I desperately want to do it.
Now, I have got Hadoop 0.205.0 and HBase 0.90.4 working fine on Cygwin on
Windows 7 environment. Also, I am running this program by executing run.bat
file rather than by "./james start" which is explained at "quick start"
page (http://james.apache.org/server/3/index.html).
It works fine with MySQL or Derby (default) but I do not know how I can run
it with HBase..
Thanks for your help and consideration in advance.
Regards.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]