部署新版本的Java EE Web应用程序时出现java.lang.VerifyError [英] java.lang.VerifyError when deploying the new version of my Java EE web application

查看:137
本文介绍了部署新版本的Java EE Web应用程序时出现java.lang.VerifyError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在当前的Web项目中修改了一些代码以添加Spring事务管理.当我在Eclipse中部署它,甚至在我的工作区中将其称为"Maven clean"和"Maven安装"时,一切工作都很好.但是,当我的持续集成服务器(jenkins)尝试在我的远程服务器上重新部署它时,我得到了java.lang.VerifyError,它失败了:

I modified some code in my current web project to add Spring transaction management. Everything works just fine when I deploy it in Eclipse or even when I call a "Maven clean" and a "Maven install" in my workspace. However when my continuous integration server (jenkins) tries to redeploy it on my distant server I get a java.lang.VerifyError and it fails:

maven-glassfish-plugin:2.1:deploy (default-cli) @ myApp --- [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:\Windows\TEMP\mgfp2047875868831547735.tmp --interactive=false --echo=true --terse=true deploy --name myApp --force=false --precompilejsp=false --verify=false --enabled=true --generatermistubs=false --availabilityenabled=false --keepreposdir=false --keepfailedstubs=false --logReportedErrors=true --upload=false --help=false C:\.jenkins\workspace\First_deploy\target\myApp-0.0.1.war
[ERROR] com.sun.enterprise.admin.cli.CommandException: remote failure: Exception while loading the app : java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'analysisDAO': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Post-processing of the FactoryBean's object failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.methodSecurityMetadataSourceAdvisor': Cannot resolve reference to bean 'org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource#0' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource#0': Cannot create inner bean '(inner bean)' of type [org.springframework.security.access.prepost.PrePostAnnotationSecurityMetadataSource] while setting constructor argument with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Cannot create inner bean '(inner bean)' of type [org.springframework.security.access.expression.method.ExpressionBasedAnnotationAttributeFactory] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Cannot resolve reference to bean 'expressionHandler' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'expressionHandler' defined in ServletContext resource [/WEB-INF/spring/security-config.xml]: Cannot resolve reference to bean 'projectPermissionEvaluator' while setting bean property 'permissionEvaluator'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'projectPermissionEvaluator': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public fr.services.interfaces.IProjectService fr.services.security.ProjectPermissionEvaluator.projectService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'projectService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public fr.services.interfaces.IProjectRightsService fr.services.impl.ProjectService.projectRightService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'projectRightService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public fr.dao.IDAOFactory fr.services.impl.ProjectRightService.daoFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myAppDAOFactory': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'agriculturalToolDao' defined in ServletContext resource [/WEB-INF/spring/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.VerifyError: Expecting a stackmap frame at branch target 43 in method fr.model.application.Projet.equals(Ljava/lang/Object;)Z at offset 4

我使用了jdk1.7(我在服务器上进行了检查,它仍然是环境变量中正确的JDK),maven和Glassfish.这是我的pom.xml:

I use a jdk1.7 (I checked on my server and it's still the right JDK which is in the environment variables), maven and Glassfish. Here is my pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>means</groupId>
    <artifactId>means</artifactId>
    <version>0.0.1</version>
    <packaging>war</packaging>
    <profiles>
        <profile>
            <id>mavenplugin-server</id>
            <activation>
                <property>
                    <name>environment</name>
                    <value>server</value>
                </property>
            </activation>
            <properties>
                <glassfish.home>C:\MEANS\Glassfish\glassfish</glassfish.home>
                <glassfish.adminPort>4848</glassfish.adminPort>
                <glassfish.httpPort>8080</glassfish.httpPort>
                <glassfish.httpsPort>8443</glassfish.httpsPort>
            </properties>
        </profile>
        <profile>
            <id>mavenplugin-server-production</id>
            <activation>
                <property>
                    <name>environment</name>
                    <value>server-production</value>
                </property>
            </activation>
            <properties>
                <glassfish.home>C:\MEANS\Glassfish\glassfish</glassfish.home>
                <glassfish.adminPort>4949</glassfish.adminPort>
                <glassfish.httpPort>8282</glassfish.httpPort>
                <glassfish.httpsPort>8553</glassfish.httpsPort>
            </properties>
        </profile>
        <profile>
            <id>mavenplugin-local</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <glassfish.home>C:\MEANS\Glassfish\glassfish</glassfish.home>
                <glassfish.adminPort>4848</glassfish.adminPort>
                <glassfish.httpPort>8080</glassfish.httpPort>
                <glassfish.httpsPort>8443</glassfish.httpsPort>
            </properties>
        </profile>
    </profiles>
    <properties>
        <org.springframework.version>3.0.5.RELEASE</org.springframework.version>
        <eclipselink.version>2.4.0</eclipselink.version>
    </properties>
    <repositories>
        <repository>
            <id>EclipseLink Repo</id>
            <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <name>EBR Spring Release Repository</name>
            <url>http:// repository.springsource.com/maven/bundles/release</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.external</id>
            <name>EBR External Release Repository</name>
            <url>http:// repository.springsource.com/maven/bundles/external</url>
        </repository>
    </repositories>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <outputDirectory>build2</outputDirectory>
        <testSourceDirectory>src/test</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <webXml>${basedir}\WebContent\WEB-INF\web.xml</webXml>
                    <warSourceExcludes>${basedir}\WebContent\*</warSourceExcludes>
                    <resource>
                        <excludes>
                            <directory>${basedir}/WebContent</directory>
                            <exclude>**/*.java</exclude>
                        </excludes>
                    </resource>
                    <webResources>
                        <resource>
                            <directory>${basedir}\src\fr</directory>
                            <targetPath>WEB-INF\classes\fr</targetPath>
                            <excludes>
                                <exclude>**/*.java</exclude>
                            </excludes>
                        </resource>
                        <resource>
                            <directory>${basedir}\build2\fr</directory>
                            <targetPath>WEB-INF\classes\fr</targetPath>
                        </resource>
                        <resource>
                            <directory>${basedir}/WebContent/WEB-INF/</directory>
                            <targetPath>WEB-INF/</targetPath>
                            <includes>
                                <include>dispatcher-servlet.xml</include>
                            </includes>
                            <excludes>
                                <exclude>log4j.properties</exclude>
                            </excludes>
                        </resource>
                        <resource>
                            <directory>${basedir}/WebContent/WEB-INF/</directory>
                            <targetPath>WEB-INF/</targetPath>
                            <includes>
                                <include>dispatcher-servlet.xml</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>${basedir}/WebContent/WEB-INF/</directory>
                            <targetPath>WEB-INF/classes/</targetPath>
                            <includes>
                                <include>log4j.properties</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/META-INF</directory>
                            <targetPath>WEB-INF/classes/META-INF/</targetPath>
                            <includes>
                                <include>persistence.xml</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>${basedir}/WebContent/</directory>
                            <targetPath></targetPath>
                        </resource>
                    </webResources>

                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.1</version>
                <configuration> 
                    <argLine>-XX:-UseSplitVerifier</argLine>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.glassfish.maven.plugin</groupId>
                <artifactId>maven-glassfish-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <user>admin</user>
                    <echo>true</echo>
                    <adminPassword>means2012!</adminPassword>
                    <glassfishDirectory>${glassfish.home}</glassfishDirectory>
                    <components>
                        <component>
                            <name>${project.artifactId}</name>
                            <artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
                        </component>
                    </components>
                    <domain>
                        <name>${project.artifactId}</name>
                        <adminPort>${glassfish.adminPort}</adminPort>
                        <httpPort>${glassfish.httpPort}</httpPort>
                        <httpsPort>${glassfish.httpsPort}</httpsPort>
                    </domain>
                </configuration>
            </plugin>

        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <scope>compile</scope>
              <exclusions>
                <exclusion>
                  <groupId>javax.mail</groupId>
                  <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>javax.jms</groupId>
                  <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.sun.jdmk</groupId>
                  <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                  <groupId>com.sun.jmx</groupId>
                  <artifactId>jmxri</artifactId>
                </exclusion>
              </exclusions>
  </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.11</version>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.6.11</version>
        </dependency>

        <!-- <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>1.6.2</version>
        </dependency>
         -->
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.core</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa.modelgen</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.moxy</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.sdo</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.oracle</artifactId>
            <version>${eclipselink.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <!-- <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-asm</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
         -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Alpha1</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>maven-glassfish-plugin</artifactId>
            <version>1.0-alpha-4</version>
            <type>maven-plugin</type>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>3.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-aspects</artifactId>
            <version>3.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>3.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>net.sf.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.2</version>
        </dependency>
    </dependencies>
</project>

我试图按照这篇文章中的说明添加maven-surefire-plugin:

I tried to add the maven-surefire-plugin as indicated in this post: How do I get unit test to run in java 7: java.lang.VerifyError: Expecting a stackmap frame at branch target but without success... As I'm not a maven expert, it's extremely difficult to find out what is wrong in my configuration so any help would be greatly appreciated! Thanks in advance

推荐答案

以防万一某天可能对某人有所帮助,我解决了这个问题,现在一切都可以在我的应用程序中正常工作了... 问题来自glassfish安装,因此它与我的代码无关(即使这个奇怪的"VerrifyError"指出了一些代码行).我发现,如果将它部署在另一个glassfish上可以工作,那么我重新安装了Glassfish服务器,问题就解决了!太糟糕了,我在这上面花了一个多星期的时间……无论如何,谢谢您的帮助!

Just in case it might help somebody some day, I solved this problem and everything works again with my app now... The problem came from the glassfish installation so it had nothing to do with my code (even if this weird "VerrifyError" pointed out some code line). I found out that if I deployed it on another glassfish it worked so I re-installed my Glassfish server and my problem was solved! Too bad I spent more than a week on that... Thanks for your help anyway!

这篇关于部署新版本的Java EE Web应用程序时出现java.lang.VerifyError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆