Page 1 of 2

Setting up broadleaf development environment without maven

Posted: Sat Jun 12, 2010 9:10 am
by logicallimit
I'm starting this new page for those who are not used to maven or ant technology. I've been really trying hard to setup the development environment but this thing just fails to move ahead. every time a new error comes and setup is not done.

I invite all the contributors to post the steps of setting up eclipse or myEclipse based development environment for broadleaf where maven or ant is not used for build process. Eclipse is used for clean up and build process and deploy it to Tomcat from within the eclipse.

Please share whatever useful information that anybody can. It would be really a great help to all those like me who are not used to maven or ant.

Re: Setting up broadleaf development environment without maven

Posted: Sun Jun 27, 2010 3:58 pm
by jefffischer
We should have some documentation around building the product, and more importantly, building your own application on top of Broadleaf as part of our 1.1 release. This will include Eclipse examples.

Re: Setting up broadleaf development environment without maven

Posted: Wed Jul 14, 2010 5:46 pm
by jefffischer
The 1.1.0 GA release is now available that includes minimal requirement startup for the demo and admin. Also, the documentation now includes a section for setting up a project using Eclipse WTP alone using the 1.1.0 GA release.

Re: Setting up broadleaf development environment without maven

Posted: Fri Nov 12, 2010 5:26 am
by springgao
Hi Jeff,
I am from China. I am evaluating broadleaf framework in order to build an e-commerce shop based on it.
But when I deploy the admin demo project BroadleafCommerceAdmin, some issues showed up as below, would you pls. help me with them? Great thanks to you!

[ERROR] 16:29:09 ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.http.UserDetailsServiceInjectionBeanPostProcessor#0': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: org.broadleafcommerce.admin.catalog.service.AdminCatalogService [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:722)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:410)
at org.broadleafcommerce.extensibility.web.MergeContextLoader.createWebApplicationContext(MergeContextLoader.java:103)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.broadleafcommerce.extensibility.web.MergeContextLoaderListener.contextInitialized(MergeContextLoaderListener.java:41)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalArgumentException: warning no match for this type name: org.broadleafcommerce.admin.catalog.service.AdminCatalogService [Xlint:invalidAbsoluteTypeName]
at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:302)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:204)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.checkReadyToMatch(AspectJExpressionPointcut.java:191)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:172)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:200)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:254)
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:286)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:117)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:87)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1418)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
... 34 more
2010-11-12 16:29:09 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.broadleafcommerce.extensibility.web.MergeContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.http.UserDetailsServiceInjectionBeanPostProcessor#0': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: org.broadleafcommerce.admin.catalog.service.AdminCatalogService [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:722)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:410)
at org.broadleafcommerce.extensibility.web.MergeContextLoader.createWebApplicationContext(MergeContextLoader.java:103)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.broadleafcommerce.extensibility.web.MergeContextLoaderListener.contextInitialized(MergeContextLoaderListener.java:41)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalArgumentException: warning no match for this type name: org.broadleafcommerce.admin.catalog.service.AdminCatalogService [Xlint:invalidAbsoluteTypeName]
at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:302)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:204)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.checkReadyToMatch(AspectJExpressionPointcut.java:191)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:172)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:200)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:254)
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:286)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:117)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:87)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1418)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
... 34 more
2010-11-12 16:29:09 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2010-11-12 16:29:09 org.apache.catalina.core.StandardContext start
严重: Context [/broadleafadmin] startup failed due to previous errors
2010-11-12 16:29:09 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2010-11-12 16:29:09 org.apache.catalina.core.ApplicationContext log
信息: Shutting down log4j

By the way, can broadleaf framework support Chinese payment type called Zhi Fu Bao(支付宝)? And in China, customs do not pay tax directly when they buy goods, and in this case, can an e-commerce shop be implemented based on broadleaf?

Thanks so much

Re: Setting up broadleaf development environment without maven

Posted: Fri Nov 12, 2010 7:14 am
by springgao
Sorry Jeff,
I have found the cause of my deploy issues that I foget to copy java code to src directory of my MyEcliplse project.
But there seems be a little problem at the 4th step of create BroadleafCommerceAdmin project:

4. Copy the admin content from the Broadleaf Commerce source. Copy these source files and directories to specified destinations in your Eclipse project:

[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/resources/**/*.* --> [MyBroadleafAdminProjectWTP location]/src
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/assets --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/content --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/forms --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/history --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/modules --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/AC_OETags.js --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/BroadleafCommerceAdmin.html --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/BroadleafCommerceAdmin.swf --> [MyBroadleafAdminProjectWTP location]/WebContent
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/webapp/BroadleafCommerceAdmin.swf.cache --> [MyBroadleafAdminProjectWTP location]/WebContent


This line should also be added:
[Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/java/**/*.* --> [MyBroadleafAdminProjectWTP location]/src
because java code is in [Broadleaf distribution]/src/site/BroadleafCommerceAdmin/src/main/java/.


However, there appears another proplem that when http://localhost:8080/broadleafadmin/ is requested in IE, an error shows up as below:

Error: [FaultEvent fault=[RPC Fault faultString="javax.persistence.PersistenceException : org.hibernate.exception.SQLGrammarException: could not execute query" faultCode="Server.Processing" faultDetail="null"] messageId="9AC8D62D-4196-C67E-E301-181AB6B8702C" type="fault" bubbles=false cancelable=true eventPhase=2]

Would you pls. help me with this?

Thx a lot

Re: Setting up broadleaf development environment without maven

Posted: Mon Nov 15, 2010 8:48 am
by jefffischer
Broadleaf can support alternate currency types (including Zhi Fu Bao). Here's a snippet of code from our Broadleaf money class:

Code: Select all

public static Currency defaultCurrency() {
        Locale locale = Locale.getDefault();
        if (locale.getCountry() != null && locale.getCountry().length() == 2) {
            return Currency.getInstance(locale);
        }
        return Currency.getInstance(System.getProperty("currency.default", "USD"));
    }

The currency type for Money is determined by this method. It will first try to determine the currency type based on the current Java locale. You can override this behavior by specifying the ISO 4217 currency code for your country using the "currency.default" system property.

In addition, not charging taxes is not a problem. Probably the simplest way to achieve this requirement would be to specify the following tax module bean override in your Spring application context:

Code: Select all

<bean id="blTaxModule" class="org.broadleafcommerce.pricing.service.module.SimpleTaxModule">
      <property name="factor" value="0"/>
   </bean>

As for the exception you're seeing with the admin - do you also see this exception in IE when you access the admin in the packaged Broadleaf demo? (http://www.broadleafcommerce.org/conflu ... plications)

Re: Setting up broadleaf development environment without maven

Posted: Tue Nov 16, 2010 1:26 am
by springgao
I failed every time when deployed braodleaf admin demo application to tomcat in MyEcplipse with its default Database and DB configuration, so I think there are something wrong with DB configuration. Later I changed DB server to Postgres , create a DB in Postgeres server, executed create-table sql and updated related DB configuration. At last, it succeeded surprisedly.

<bean id="webDS" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/broadleaf" />
<property name="username" value="postgres" />
<property name="password" value="postgres" />
</bean>

However it is still so difficult for me to develop my own application on top of braofleaf, it lacks more detailed documents and examples.
Greatly looking forward to them.

Re: Setting up broadleaf development environment without maven

Posted: Tue Nov 16, 2010 7:02 am
by jefffischer
What was the original database platform you tried it on that was not successful for you? Before a release, we test on a number of different db platforms, so I'm curious what platform didn't work for you. As for documentation, could you detail the areas specifically where you were not seeing enough documentation to help you effectively? We appreciate and need this kind of feedback in order to continue to get better. Thanks!

Re: Setting up broadleaf development environment without maven

Posted: Tue Nov 16, 2010 6:49 pm
by springgao
I originally deployed broadleafadmin with this data source,
<bean id="webDS" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:hsql://localhost/broadleaf;ifexists=true" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
After deployed successfully, I visit this application by http://localhost:8080/broadleafadmin/ and log on this admin/blc_admin, it prompt the following error:
Error: [FaultEvent fault=[RPC Fault faultString="javax.persistence.PersistenceException : org.hibernate.exception.SQLGrammarException: could not execute query" faultCode="Server.Processing" faultDetail="null"] messageId="9AC8D62D-4196-C67E-E301-181AB6B8702C" type="fault" bubbles=false cancelable=true eventPhase=2]
Now it has been not important for me because I have deployed it with postgres DB successfully.

Re: Setting up broadleaf development environment without maven

Posted: Tue Nov 16, 2010 6:50 pm
by springgao
I originally deployed broadleafadmin with this data source,
<bean id="webDS" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:hsql://localhost/broadleaf;ifexists=true" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
After deployed successfully, I visit this application by http://localhost:8080/broadleafadmin/ and log on this admin/blc_admin, it prompt the following error:
Error: [FaultEvent fault=[RPC Fault faultString="javax.persistence.PersistenceException : org.hibernate.exception.SQLGrammarException: could not execute query" faultCode="Server.Processing" faultDetail="null"] messageId="9AC8D62D-4196-C67E-E301-181AB6B8702C" type="fault" bubbles=false cancelable=true eventPhase=2]
Now it has been not important for me because I have deployed it with postgres DB successfully.