cancel
Showing results for 
Search instead for 
Did you mean: 

troubles with alfresco sdk

aznk
Champ in-the-making
Champ in-the-making
Hi,

I've reading all documentation on wikis and polling all forums, but still couldn't make clear the following points :

First I have a question, should I use alfresco sdk or SVN ?
The case is that I'm extending and customizing alfresco functionalities (such as content model aspects/types, but it sometimes requires more than juste modifying xml files) and web interface for my company, but it is not aimed to contribute un bug fixes or plugins development in forge. So what do you advise me to do ?

If I understood well, I should also install alfresco standard installation along with sdk ? (then why not putting all along one bundle to avoid having to install the 2 things?)
I followed this tutorial :
http://wiki.alfresco.com/wiki/Alfresco_SDK

I installed alfresco standard application on my machine (accessible on localhost), to the following directory :
C:\Program Files\Alfresco ECMS Community Network

and the alf_data directory is just located here :
C:\Program Files\Alfresco ECMS Community Network\alf_data

I've unzipped alfresco sdk in another directory.
I created user in mysql:
+———————–+———-+
| host                  | user     |
+———————–+———-+
| localhost             | alfresco |
| localhost             | root     |
| localhost.localdomain | alfresco |
+———————–+———-+
Btw shouldn't the command be
mysql -u root -e "grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;"
instead of
mysql -u root -e "grant all on alfresco.* to 'alfresco'@'localhost.localdomain' identified by 'alfresco' with grant option;"
as it is accessible on localhost only ?

Then I've tried launching the FirstFoundationClient example, with the following configuration in custom-repository.properties :


dir.root=C:/Program Files/Alfresco ECMS Community Network/alf_data
db.username=alfresco
db.password=alfresco

#
# MySQL connection (This is default and requires mysql-connector-java-3.1.12-bin.jar, which ships with the Alfresco server)
#
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost/alfresco

then I got this famous error :

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'dataSource' defined in class path resource [alfresco/core-services-context.xml]: Bean class [org.apache.commons.dbcp.BasicDataSource] not found; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at org.springframework.util.ClassUtils.forName(ClassUtils.java:108)
   at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.createBeanDefinition(BeanDefinitionReaderUtils.java:65)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:426)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitionElement(DefaultXmlBeanDefinitionParser.java:392)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:307)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:191)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:295)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:223)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.importBeanDefinitionResource(DefaultXmlBeanDefinitionParser.java:325)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.parseBeanDefinitions(DefaultXmlBeanDefinitionParser.java:298)
   at org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser.registerBeanDefinitions(DefaultXmlBeanDefinitionParser.java:191)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:295)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:223)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
   at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
   at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:81)
   at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:269)
   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
   at org.alfresco.util.ApplicationContextHelper.getApplicationContext(ApplicationContextHelper.java:40)
   at org.alfresco.sample.FirstFoundationClient.main(FirstFoundationClient.java:62)


What's wrong ? I've tried several path for alf_data but still couldn't resolve this error.
I read somewhere that we could have troubles using different databases. I used mysql for sdk (in the wiki tutorial), and hsql is used by default in alfresco standard application.
I also tried to configure to use mysql instead of hsql but got an exception when trying to launch alfresco.

Have you got any idea on how to solve all this ?

Thanx
7 REPLIES 7

derek
Star Contributor
Star Contributor
SVN is currently in quite a state of flux as we are bringing in the WCM functionality, which has been in development for several months.  There are bound to be issues so it is probably safer to download or use SVN on port 3696.

We have moved away from C3P0 to DBCP.  For some reason, the apache commons dbcp jar is not on the classpath and should be put there to avoid your error.

Regards

vojko
Champ in-the-making
Champ in-the-making
Libs from /SDK AlfrescoEmbedded/dependencies/commons should be placed in eclipse project class path.

aznk
Champ in-the-making
Champ in-the-making
Hi,
Thanks for your answer.
But now I have this ImageMagic error, I don't know where it comes from since I'm installing on Windows 2000 :
14:51:42,213 ERROR [transform.magick.AbstractImageMagickContentTransformer] ImageMagickContentTransformer not available: Failed to execute command: imconvert "C:\DOCUME~1\kho-dac\LOCALS~1\Temp\Alfresco\ImageMagickContentTransformer_init_source_52608.gif"  "C:\DOCUME~1\kho-dac\LOCALS~1\Temp\Alfresco\ImageMagickContentTransformer_init_target_52609.png"
Exception in thread "main" org.alfresco.error.AlfrescoRuntimeException: Bootstrap failed
   at org.alfresco.repo.importer.ImporterBootstrap.bootstrap(ImporterBootstrap.java:448)
   at org.alfresco.repo.importer.ImporterBootstrap.onBootstrap(ImporterBootstrap.java:670)
   at org.alfresco.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:54)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:45)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:225)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:323)
   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
   at org.alfresco.util.ApplicationContextHelper.getApplicationContext(ApplicationContextHelper.java:40)
   at org.alfresco.sample.FirstFoundationClient.main(FirstFoundationClient.java:62)
Caused by: org.alfresco.repo.search.SearcherException: More than one root node in index: 2
   at org.alfresco.repo.search.impl.lucene.query.LeafScorer.initialise(LeafScorer.java:220)
   at org.alfresco.repo.search.impl.lucene.query.LeafScorer.<init>(LeafScorer.java:134)
   at org.alfresco.repo.search.impl.lucene.query.PathScorer.createPathScorer(PathScorer.java:159)
   at org.alfresco.repo.search.impl.lucene.query.PathQuery$StructuredFieldWeight.scorer(PathQuery.java:250)
   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:85)
   at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
   at org.apache.lucene.search.Hits.<init>(Hits.java:43)
   at org.apache.lucene.search.Searcher.search(Searcher.java:33)
   at org.apache.lucene.search.Searcher.search(Searcher.java:27)
   at org.alfresco.repo.search.impl.lucene.LuceneSearcherImpl2.query(LuceneSearcherImpl2.java:258)
   at org.alfresco.repo.search.SearcherComponent.query(SearcherComponent.java:77)
   at org.alfresco.repo.importer.ImporterComponent$NodeImporter.resolveImportedNodeRef(ImporterComponent.java:1007)
   at org.alfresco.repo.importer.ImporterComponent$NodeImporter.end(ImporterComponent.java:730)
   at org.alfresco.repo.importer.ImporterComponent.parserImport(ImporterComponent.java:345)
   at org.alfresco.repo.importer.ImporterComponent.importView(ImporterComponent.java:211)
   at org.alfresco.repo.importer.ImporterBootstrap.bootstrap(ImporterBootstrap.java:429)
   … 9 more

derek
Star Contributor
Star Contributor
Hi,
Are you running Alfresco 1.4 or 1.3?
For a start, you should create a dev-context.xml in <classpath>/alfresco/extension.  In that, override your database connection properties and dir.root property.  In that way, you ensure that all executions against the repo, regardless of where they are executed from, will share the same database as well as alf_data location.

Here is my dev-context.xml:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
    <import resource="file:c:\temp\alfresco\dev-context.xml"/>
</beans>
Also, read the WIKI page: http://wiki.alfresco.com/wiki/Repository_Configuration

To fix your issue, drop and create the alfresco database again and clean out your alf_data folder.

Regards

aznk
Champ in-the-making
Champ in-the-making
Hi,
I'm using alfresco release installation 1.4.
I could fix all the errors by reinstalling alfresco, configuring mysql properly and also copying WinNetBios.dll and imconvert.exe into the system directory of windows.
Now everything is working fine, I didn't need to create the dev-context.xml file (is it for the SVN ?) to make it work.

derek
Star Contributor
Star Contributor
Hi,

You don't have to have the dev-context.xml configuration override.  But if you execute a test or something from another directory, the relative path issue will arise again.

Regards

aznk
Champ in-the-making
Champ in-the-making
Hi,

Thanks for added information.
SDK can be used as a standalone independently (for example in our local computer) from the alfresco installation (which could be on a remote server, right ?). And we can see changes by launching the browser. But how about SVN ? Can we also see changes in the browser just after building all project ? I read something about copying war files but I'm not sure…

Regards.