Page 1 of 1

Load time weaving problem

Posted: Thu May 21, 2015 12:04 am
by mercury1231
I did some customization based on demo site but didn't really touch the framework. When starting the demo site using mvn tomcat:run, I'm getting the following warning.

Code: Select all

[ WARN] 00:55:42 RuntimeEnvironmentPropertiesConfigurer - Unable to determine runtime environment, using default environment 'development'
[ WARN] 00:55:45 MergePersistenceUnitManager - A BroadleafClassTransformer is configured for this persistence unit, but Spring reported a problem (likely that a LoadTimeWeaver is not registered). As a result, the Broadleaf Commerce ClassTransformer (org.broadleafcommerce.common.extensibility.jpa.copy.DirectCopyClassTransformer) is not being registered with the persistence unit.
[ WARN] 00:55:45 MergePersistenceUnitManager - A BroadleafClassTransformer is configured for this persistence unit, but Spring reported a problem (likely that a LoadTimeWeaver is not registered). As a result, the Broadleaf Commerce ClassTransformer (org.broadleafcommerce.common.extensibility.jpa.convert.EntityMarkerClassTransformer) is not being registered with the persistence unit.
[ WARN] 00:55:45 MergePersistenceUnitManager - A BroadleafClassTransformer is configured for this persistence unit, but Spring reported a problem (likely that a LoadTimeWeaver is not registered). As a result, the Broadleaf Commerce ClassTransformer (org.broadleafcommerce.common.extensibility.jpa.copy.DirectCopyClassTransformer) is not being registered with the persistence unit.


It appears to be complaining about the LoadTimeWeaver configs and I looked up the broadleaf help page (http://www.broadleafcommerce.com/docs/c ... me-weaving) and added spring-instrument to JAVA_OPTS/MAVEN_OPTS/CATALINA_OPTS, but I'm still getting those WARN messages.

Here is my tomcat-run plugin config:

Code: Select all

<plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <systemProperties>
                        <JAVA_OPTS>-Xms1024M -Xmx4096M -XX:MaxPermSize=2048M -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled</JAVA_OPTS>
                        <CATALINA_OPTS>-Xms1024M -Xmx4096M -XX:MaxPermSize=2048M -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled</CATALINA_OPTS>
                        <MAVEN_OPTS>-Xms1024M -Xmx4096M -XX:MaxPermSize=2048M -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled</MAVEN_OPTS>
                    </systemProperties>
                    <!--<tomcatLoggingFile>./catalina.out</tomcatLoggingFile>-->
                    <warSourceDirectory>${webappDirectory}</warSourceDirectory>
                    <path>/</path>
                    <port>${httpPort}</port>
                    <httpsPort>${httpsPort}</httpsPort>
                    <keystoreFile>${webappDirectory}/WEB-INF/blc-example.keystore</keystoreFile>
                    <keystorePass>broadleaf</keystorePass>
                    <password>broadleaf</password>
                    <extraDependencies>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>slf4j-api</artifactId>
                        </dependency>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>jul-to-slf4j</artifactId>
                        </dependency>
                        <dependency>
                            <groupId>log4j</groupId>
                            <artifactId>log4j</artifactId>
                        </dependency>
                    </extraDependencies>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-core</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-util</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-coyote</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-api</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-jdbc</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-dbcp</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-servlet-api</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-jsp-api</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-jasper</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-jasper-el</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-el-api</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-catalina</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-tribes</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-catalina-ha</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-annotations-api</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-juli</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-logging-juli</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-logging-log4j</artifactId>
                        <version>${tomcat.version}</version>
                    </dependency>
                </dependencies>
            </plugin>


Although not reported before, I suspect this LoadTimeWeaver issue might be related to another issue that I had. In that one JPA EntityManager does not push changes made through .merge() to database no matter how. persist() is working fine though.

Re: Load time weaving problem

Posted: Thu May 21, 2015 9:42 am
by phillipuniverse
I would recommend you use the ant build scripts that are in the project, or at least look at them to see what JVM arguments are passed. The only thing that those ant build scripts do is kick off a Maven build (exactly what you're doing) with some JVM arguments, including a -javaagent:/path/to/spring-instrument.jar.

Re: Load time weaving problem

Posted: Thu May 21, 2015 9:42 am
by phillipuniverse
In regards to your merge() vs persist() problem, I doubt that has anything to do with the load time weaver. That sounds to me more like a transaction problem. Perhaps wherever you have the merge() it was not within a method/call stack that included an @Transactional annotation?