Alfresco Developer Guide readers react positively

Thanks so much to everyone who has commented on the blog, sent an email, mentioned the book in a blog post, or written a review on my book, Alfresco Developer Guide. I’m glad you’re finding it helpful. Keep that feedback coming. While I’m thinking about it, here are some links related to the book you might find helpful:

  • A free chapter can be downloaded from the Alfresco Content Community. You’ll need an Alfresco Content Community login (it’s free).
  • One of my Optaros colleagues, Olivier Pépin, and I, originally wrote a chapter on Optaros’ open source alternative web client, DoCASU, but we had to make it a download for space reasons. You can download the “bonus chapter” from Optaros (email address required).
  • Appendix C talks about installing Alfresco, AMPs, import/export, and Surf. This was originally intended to be included in the book as well, but it’s been provided as a download instead.

36 comments

  1. apoorv says:

    Jeff – I just got my copy a couple of days back. I have not yet read it completely but it is an amazing book. I really like the hands-on approach.

  2. jpotts says:

    @Angel,

    No, the book does not show any Alfresco + Drupal integration examples. Optaros, Acquia, and Alfresco are working on an open source integration, though, and we’ll post more on that as it becomes available.

    Jeff

  3. Ron DiFrango says:

    I was trying to deploy the AMP file from chapter 3 to understand the custom content model approach and I am getting the following shortened Exception:

    Error creating bean with name ‘somecoModuleCore.bootstrapAuthorityCreator’

    during start-up. I am using Alfresco Enterprise 3.0. I have more exception details that I can pass along if need be.

  4. jpotts says:

    @Ron,

    Sorry you are having trouble. Have you tried the non-AMP deployment approach for Chapter 3?

    At one point (very early) I wanted to have every chapter deployable via either method. But it was getting to convoluted and potentially confusing to maintain for every chapter.

    So try the non-AMP and let me know. The bootstrap authority creator is only called during AMP bootstrapping so the non-AMP method should work.

    If not, let me know which version of Alfresco you are running and any stack track you are seeing and I’ll take a look.

    Jeff

  5. Raghu says:

    Jeff,

    I have only reached till chapter 5. With respect to what I have read till now, the book is real good. 🙂

    One thing that I really got upset was; at some places in the book you have referred to British spelling (the correct spelling) – as MISSPELLING. 🙁

    I prefer to believe that you wrote this for the whole world and not just for Americans. 😉

    There are much more people outside America who read and speak English and prefer to write the right way (the English way and not American). 🙂

    -raghu

  6. jpotts says:

    Raghu,

    Thanks for reading the book. I’m glad you’re finding it useful.

    I think, on the whole, it would be hard to accuse this blog, the book, or me, personally, of being egregiously ethnocentric. I’m keenly aware of where the bulk of my traffic comes from. For that reason, I’ve tried to avoid certain idioms that don’t translate well, for example.

    I think the only place I characterize an alternate spelling as a “misspelling” is in Chapter 4 related to the word “extractor”. The Alfresco classes use “Extracter”. I’m pretty sure that is a legitimate misspelling and not simply the British spelling of “Extractor”. If I’m wrong about that, please let me know and I’ll stand corrected.

    Later on in the book, in multiple places, I will call attention to “UK spelling” simply because, whether or not it is the “right” way to spell something, it trips people up. (I do make a joke about it being “endearing” later on, hopefully giving you a sense of how many times I’ve tripped over it).

    With that said, my personal opinion on open source software that intends to be used globally is that it should be written in English and words that are potentially ambiguous should be avoided in things like class names.

    Jeff

  7. Veronika Zenz says:

    It seems that the sourcecode for the RatingService (part of Chapter 6) is missing. ( downloaded the code.zip from packtub)

    Would be great if you could provide us with this example code.

    Btw, Great Book 🙂

  8. Jeff says:

    Urgent: I tried to create the first project: client-extensions, which is introduced in chapter 2, but I don’t know how to obtain some key files, they are build.xml, build.properties.sample, faces-config.xml and custom-medel-context.xml.sample. For the first two files, there’s no reference. For faces-config.xml, my Alfresco web application(enterprise-3.0) doesn’t include it. For custom-medel-context.xml.sample, there’s not “extensions/extension” fold at all! How can I create the sample?!

  9. jpotts says:

    The build.xml file is provided in the source code that accompanies the book. (The code is available as a zip at http://www.packtpub.com/support/book/alfresco-developer-guide).

    The build.properties.sample file was supposed to be provided in the book source code as well but it looks like it was missed. It isn’t needed though–you can just look at the build.properties file because it is the same thing.

    The faces-config.xml file is in there–look under src/web/META-INF.

    The custom-model-context.xml.sample file is not in my source–it is a file provided by Alfresco. The extensions/extension directory should be in the root of the directory where you unpacked the Alfresco distribution.

    Hope that helps.

    Jeff

  10. Jeff says:

    Hi Jeff

    Thank you for you quickly response. I think the alfresco’s directory structure has been changed, extensions folder doesn’t exist any more(my instance is enterprise 3.0). so does faces-config.xml, you can find some faces-config*.xml files, but no faces-config.xml. Anyway, I have downloaded the attached source code by your instruction, that’s great!

    Jeff(also)

  11. jpotts says:

    Jeff,

    It is confusing–the “extensions” directory is a directory that is provided as part of the installation files Alfresco distributes. For example, when you unpack the WAR distribution (note: the install files, not the Alfresco WAR web application) for 3.0 Enterprise, you get:
    – extensions
    – licenses
    – extras
    – alfresco.war
    – share.war
    – README.txt

    In that “extensions” directory you’ll find an “extension” directory. That’s where the sample extension override files are provided. They can be copied to the Alfresco webapp’s “extension” directory to override various Alfresco settings.

    This is handled the same way in both Enterprise and Labs.

    Jeff

  12. Jeff says:

    Thank you, Jeff. Maybe you are right, I downloaded an executable self-unpack fully installation file for Windows XP, all I got after run the .exe file is a final working environment, which has been well configured, therefore I can’t see any sub-dir within the distribution package. But you gave me a hints that maybe I’d better to download a WAR file to have look.

    Thank you again.

    Jeff

  13. Veronika says:

    Thanks for the quick reaction.
    I’m looking forward to digging deeper into the service example now i’ve got the code!

    so thanks again

    veronika

  14. Ganesh says:

    Hi Jeff,
    I’m Ganesh from India, I read some sample chapters from your book through website.
    I want to buy this book. for that i searched somany shops in india. But this copy is not available in any where. Is this book having any indian copy with indian price.
    Because my budget is not enough to buy US/ PDF copy.
    what is an alternate for me?

  15. Ganesh says:

    And one more thing. Is this book includes the development of custom client?
    that steps to developing the sample client for Alfresco?

  16. jpotts says:

    Ganesh,

    Thanks for your interested in the Alfresco Developer Guide. The eBook is probably your best bet. You can use “dzone20” to save 20%, or if that code doesn’t work, use “AlfrescoDG-3117” and save 15%. Hopefully that gets it closer to your budget.

    I don’t know if libraries in India do this sort of thing, but here in the States you can often get a public library to order a book for you so that might be another option.

    Good luck,

    Jeff

  17. jpotts says:

    Ganesh,

    I do include a chapter on customizing the out-of-box web client (now called “Explorer”). It doesn’t tell you how to recreate the web client from scratch. That would be too much to cover in this book. Plus, for extensive customizations, I recommend that people seriously consider building their own custom client and interacting with Alfresco via REST rather than starting from the web client.

    If you do decide to move forward with your web client work, you’ll definitely need to become familiar with JavaServer Faces (JSF). There are many books and web sites that can help you with that.

    Jeff

  18. km70569w says:

    Hi Jeff:

    I just started to learn Alfresco like 2 days back and bought your book “Alfresco Developer Guide” to learn how to customize alfresco and am trying to go through one of the examples to customize the login page on chapter 2. In the comments “Where it came from” you mentioned “Copied from Alfresco application and modified”, I am not sure what kind of modification do we need to make. I am not been able to figure this out. Could you please explain?

    Thanks.

  19. jpotts says:

    km70569w,

    It sounds like you are on Chapter 2. That chapter is really about learning how to deploy some changes, setting up your dev environment, and your build, etc., and not really about exactly what changes you need to make to customize the login page. You can grab the login.jsp and relogin.jsp files from the source that accompanies the book if you want to see the changes that were made. The updates needed to faces-config.xml file are on page 42. The web-client-config changes are on page 44.

    Hope that helps!

    Jeff

  20. km70569w says:

    Hi Jeff:

    Thanks for the quick response. Okay so I made the changes to faces-config and web-client-config-custom files as per page 42 and 44. Now to deploy this on the server I created a build.xml as per the one of you sample projects that came with sdk. when i run that build file, i get a jar file with nothing in it. I can understand that i do not have any java file currently in the project. but how do i deploy this in the server? From the text book it says, “ant deploy”. I could not get this going. Can you help? Thanks.

    KM

  21. km70569w says:

    Sorry it didnt let me paste my build.xml file here. So basically what I am trying to do is, I made slight change to login.jsp file, added new image file as mentioned in the “Step by Step Packaging and Deplying” and trying to see the changes in the browser. When i run ant build on my build/xml i get the following message:
    Buildfile: C:\temp\Projects\alfresco\client-extensions\build.xml
    compile:
    package-jar:
    [delete] Deleting: C:\temp\Projects\alfresco\client-extensions\build\client-extensions.jar
    [jar] Warning: skipping jar archive C:\temp\Projects\alfresco\client-extensions\build\client-extensions.jar because no files were included.
    [jar] Building MANIFEST-only jar: C:\temp\Projects\alfresco\client-extensions\build\client-extensions.jar
    copy jar:
    [copy] Copying 1 file to c:\Alfresco\tomcat\webapps\alfresco\WEB-INF\lib
    BUILD SUCCESSFUL
    Total time: 187 milliseconds

    Even the jar file is copied over to the lib directory of Alfresco, it contains nothing. not even the new modified jsp files. Any help on this would be highly appreciated. Thanks.

  22. jpotts says:

    Your build directory should have two things in it: a JAR file (which might be empty) and a ZIP file. The deploy task in the build script simply unzips the ZIP file into your expanded Alfresco webapp root. It figures out where that is based on what you’ve specified in your build.properties file. So, make sure your build.properties file exists and that it has the right directories specified (use build.properties.sample as an example). And make sure your zip is being created. For example, my zip looks like this:

    Length Date Time Name
    -------- ---- ---- ----
    0 07-14-09 14:58 WEB-INF/
    0 07-14-09 14:58 WEB-INF/classes/
    0 07-14-09 14:58 WEB-INF/classes/alfresco/
    0 07-14-09 14:58 WEB-INF/classes/alfresco/extension/
    0 07-13-09 17:36 WEB-INF/classes/alfresco/extension/model/
    1301 07-13-09 17:36 WEB-INF/classes/alfresco/extension/model/scModel.xml
    487 07-13-09 17:36 WEB-INF/classes/alfresco/extension/someco-model-context.xml
    1272 07-13-09 17:36 WEB-INF/classes/alfresco/extension/web-client-config-custom.xml
    0 07-14-09 14:58 WEB-INF/lib/
    3637 07-14-09 14:58 WEB-INF/lib/someco-client-extensions.jar
    0 07-13-09 17:36 jsp/
    0 07-13-09 17:36 jsp/extension/
    0 07-13-09 17:36 someco/
    0 07-13-09 17:36 someco/images/
    7004 07-13-09 17:36 jsp/extension/login.jsp
    4508 07-13-09 17:36 jsp/extension/relogin.jsp
    5063 07-13-09 17:36 someco/images/someco-logo.png
    -------- -------
    23272 17 files

    Are you using the build.xml that came with the source?

    Jeff

  23. km70569w says:

    Thanks a lot Jeff.

    Yes I am using the build.xml from the sample project “SDK CustomAction”. But that file does not create a zip file.

    I think I have problems in my build.xml file. Is it possible to email me a copy of the zip file that you have? that may actually resolve the issue that I am having.

    Thanks a lot.

    KM

  24. km70569w says:

    Hi Jeff:

    I manage to create the zip file as per yours in the above message. One thing I am missing is the faces-config.xml file which from the book says it should go into the META-INF directory inside the jar file. How do u put this file in there?

    Thanks

    KM

  25. jpotts says:

    The “package-jar” Ant task handles that. It assumes your faces-config.xml lives in src/web/META-INF. If it is there, it will get placed in the JAR under the META-INF directory.

    Jeff

  26. km70569w says:

    Directory structure looks same as you have it in your post above.

    my “package-jar” looks like this in the build.xml

    but it is not creating the faces-config.xml file inside the META-INF folder. If there a way I can email you my project for you to look at?

    Sorry for all these questions and i am using this blog as a forum. I have already spent 2 days trying to figure this out. It will help me go forward in the book. Thank you very much?

    KM

  27. km70569w says:

    Hi Jeff:

    I am having difficulty connecting to mysql database. I have made changes to the custom-repository.properties and custom-hibernate-dialect.properties files to connect to mysql database that came with alfresco.

    here are the changes that i made to hybernate-dialect:
    hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

    and here are the changes for custom-repository
    #
    dir.root=C:/Alfresco/alf_data
    #ooo.exe=soffice
    #ooo.user=${dir.root}/oouser

    #
    # MySQL connection
    #
    db.driver=org.gjt.mm.mysql.Driver
    db.url=jdbc:mysql://localhost/alfresco

    rest of all are as it is. When I run the alfresco, I get weird exception as below:

    SEVERE: Exception sending context initialized event to listener instance of class org.alfresco.web.app.ContextListener
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘indexerComponent’ defined in class path resource [alfresco/core-services-context.xml]: ………..

    I have tried a lot to figure this out. if you have any idea, please let me know. thanks.

    KM

  28. jpotts says:

    Checklist:
    – Connect to your database using MySQL command line like: mysql alfresco -ualfresco -palfresco. If you are using something other than alfresco/alfresco for the database username/password, those need to be set in custom-repository.properties (db.name and db.username).
    – Make sure you’ve copied the MySQL Connector JAR into your $TOMCAT_HOME/common/lib (Tomcat 5.x) or $TOMCAT_HOME/lib (Tomcat 6.x) directory.
    – If you are running 3.2 or from head, note that Alfresco moved from having a separate hibernate dialect props and custom repository props into a single alfresco-global.properties file.
    – Look closely at your log file to see if you are actually getting SQL-related exceptions. The problem you are seeing may not have anything to do with the database at all. For example, does your c:\Alfresco\alf_data directory already exist? If not, it needs to.

    Hope that helps,

    Jeff

  29. km70569w says:

    Thanks for the reply Jeff:

    – I am not able to run mysql from the command line. I tried: mysql -ualfresco -palfresco i get the following error:
    ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
    How ever when I run alf_start.bat file, it brings up the mysql. and then when i tried the same command, it can get into to mysql. is this normal?

    – I do have mysql-connector-java-5.1.7-bin.jar in my c:\Alfresco\tomcat\lib directory.

    – when I look at my log files for mysql .err file, i am getting the following error:

    mysqld: Table ‘mysql.plugin’ doesn’t exist
    091209 9:37:55 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
    091209 9:37:56 InnoDB: Started; log sequence number 0 46409
    Can’t start server: Bind on TCP/IP port: No such file or directory

    I do have c:\Alfresco\alf_data folder that came with the alfresco installation.

    – I also modified the my.ini file to uncomment out these lines for mysql:

    #Path to installation directory. All paths are usually resolved relative to this.
    basedir=”c:/Alfresco/mysql/”

    #Path to the database root
    datadir=”c:/Alfresco/mysql/data”

    Please let me know if there something that I am missing.

  30. NRR says:

    Hello Jeff,
    I read you book, the explanatons seem clear – thank you. But i am not able to import the examples of chapter 2. I have the following problem in eclispe.

    “Description Resource Path Location Type
    The method createAuthentication(String, char[]) is undefined for the type AuthenticationService BootstrapAuthorityCreator.java /someco-client-extensions-ch2/src/java/com/someco/module line 35 Java Problem”

    I am using alfresco 3.3 community with the community sdk.

    thank you

  31. jpotts says:

    I haven’t updated the source for 3.3 Community. The auth stuff has definitely changed a bit. You might try eliminating the createAuthentication call entirely and see if you can just get by with the createPerson calls.

    Jeff

  32. youcef says:

    I’m tring to work with your BOOK, i want de deploy the ch2 into my server JBOSS , i have the following error
    2012-05-20 00:19:13,619 INFO [STDOUT] (main) 2012-05-20 00:19:13,591 ERROR [web.context.ContextLoader] [main] Context initialization failed
    org.alfresco.error.AlfrescoRuntimeException: 04200005 Failed to start modules
    at org.alfresco.repo.module.ModuleComponentHelper$1.doWork(ModuleComponentHelper.java:302)
    at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:519)
    at org.alfresco.repo.module.ModuleComponentHelper.startModules(ModuleComponentHelper.java:196)
    at org.alfresco.repo.module.ModuleServiceImpl.startModules(ModuleServiceImpl.java:137)
    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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy506.startModules(Unknown Source)
    at org.alfresco.repo.module.ModuleStarter$1.execute(ModuleStarter.java:66)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:278)
    at org.alfresco.repo.module.ModuleStarter$2.doWork(ModuleStarter.java:76)
    at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:519)
    at org.alfresco.repo.module.ModuleStarter.onBootstrap(ModuleStarter.java:71)
    at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
    at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:209)
    at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:180)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
    at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
    at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
    at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
    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.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
    at $Proxy38.start(Unknown Source)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
    at org.jboss.system.ServiceController.start(ServiceController.java:460)
    at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
    at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
    at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
    at org.jboss.system.server.profileservice.repository
    2012-05-20 00:19:13,623 INFO [STDOUT] (main) .AbstractProfileAction.install(AbstractProfileAction.java:53)
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
    at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
    at org.jboss.Main.boot(Main.java:221)
    at org.jboss.Main$1.run(Main.java:556)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: org.alfresco.error.AlfrescoRuntimeException: 04200004 The module component has already been executed: com.someco.module.extensions.Core.somecoModuleCore.bootstrap
    at org.alfresco.error.AlfrescoRuntimeException.create(AlfrescoRuntimeException.java:46)
    at org.alfresco.repo.module.AbstractModuleComponent.execute(AbstractModuleComponent.java:346)
    at org.alfresco.repo.module.ModuleComponentHelper.executeComponent(ModuleComponentHelper.java:645)
    at org.alfresco.repo.module.ModuleComponentHelper.startModule(ModuleComponentHelper.java:564)
    at org.alfresco.repo.module.ModuleComponentHelper.access$400(ModuleComponentHelper.java:57)
    at org.alfresco.repo.module.ModuleComponentHelper$1$1.execute(ModuleComponentHelper.java:239)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:278)
    at org.alfresco.repo.module.ModuleComponentHelper$1.doWork(ModuleComponentHelper.java:260)
    … 99 more

Comments are closed.