Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring 3.1,Aspect,Tomcat-圆度误差_Java_Spring_Tomcat_Aspectj - Fatal编程技术网

Java Spring 3.1,Aspect,Tomcat-圆度误差

Java Spring 3.1,Aspect,Tomcat-圆度误差,java,spring,tomcat,aspectj,Java,Spring,Tomcat,Aspectj,我有一个相当复杂的web应用程序,其中整个DAO都外包给了一个@Aspect类,该类将在访问需要数据库实体的方法时加载数据库实体 当从netbeans启动web应用程序时,整个方法工作得非常好。但是,当我尝试将相同的.war部署到独立的tomcat(同一版本的tomcat,同一版本的java)时,启动时会出现以下异常: 原因:java.lang.IllegalArgumentException:通知优先级循环错误 我就是不知道是什么导致了这个问题,以及为什么应用程序在通过netbeans启动时运

我有一个相当复杂的web应用程序,其中整个DAO都外包给了一个
@Aspect
类,该类将在访问需要数据库实体的方法时加载数据库实体

当从netbeans启动web应用程序时,整个方法工作得非常好。但是,当我尝试将相同的.war部署到独立的tomcat(同一版本的tomcat,同一版本的java)时,启动时会出现以下异常:

原因:java.lang.IllegalArgumentException:通知优先级循环错误

我就是不知道是什么导致了这个问题,以及为什么应用程序在通过netbeans启动时运行良好。

Maven配置:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <fork>false</fork>
                <meminitial>256m</meminitial>
                <maxmem>768m</maxmem>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>${project.build.sourceEncoding}</encoding>
                <showWarnings>true</showWarnings>
                <showDeprecation>false</showDeprecation>
                <debug>true</debug>
                <debuglevel>lines,vars,source</debuglevel>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
                <webXml>src\main\webapp\WEB-INF\web.xml</webXml>
            </configuration>
        </plugin>

我真的不知道我应该在这篇文章中包含什么信息,因为我甚至不知道从哪里开始。。。如果需要,请随时询问更多信息。

这不一定是一个完整的答案,但链接应该会有所帮助:

听起来这里的区别在于,您的计算机以不同的方式返回特定类的已声明方法的顺序,这改变了方面建议的运行方式:

Spring使用getDeclaredMethods来确定通知的顺序, 但是getDeclaredMethods以未指定的顺序返回方法。()

还有一张春季门票,它的发行听起来与你的非常相似:


希望这有点帮助。祝你好运。

当你说“同一场战争”时,你的意思是一样的吗?或者WAR运行在NetBeans生成的NetBeans中,而另一个运行在maven WAR插件生成的NetBeans中?嗯。。我一直认为两者都是使用maven war插件构建的?但是一个是通过在netbeans中按“run”来运行的,另一个是由maven war pluginmabe构建的。我很久没有使用netbeans了,但这取决于您的运行配置。我使用IntelliJ,但它没有(至少对于我的默认设置)。我想比较一下这两场战争是值得的,也许两次都运行会有助于诊断问题。没有什么可以比较的——我只有一场战争。我不知道netbeans有什么不同。。也许在tomcat上做些改变?我将分解后的目录从netbeans/target/directory复制到服务器上。发动这场爆炸性的战争并没有改变任何事情。两台不同的机器,都是64位的?当通过NetBeans运行时,工作的WAR被复制到服务器机器上,并被放在Tomcat的“webapps”目录中,Tomcat随后无法部署它,出现上述错误?您是否有任何其他异常(无论它们是否都已链接)或记录了任何警告/服务器?-可能也是一本好书。谢谢你的帮助。我已经偶然发现了所有这些帖子——不过我对自己的研究并不十分满意。这张票是2008年的。我想,到目前为止,还得进行一些修理。这个问题不会很少见吧?看起来确实是不同的JDK导致了这些问题。明天我将得到一台Win7机器,在那里我可以部署-也许这将解决问题..聚会有点晚了,但显然不同的JDK是问题所在:)
<context:annotation-config />
<context:component-scan base-package="my.package" />
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/" />
<aop:aspectj-autoproxy />
java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)