1

Grailsアプリを1.3.6から2.1.1にアップグレードしました。いくつかの修正と整理の後、run-appは機能します(ほとんどの場合、まだいくつかの非推奨の問題に対処する必要があります)。grails戦争もエラーなしで構築されます。

ただし、JBoss(4.2.2)にデプロイすると、grails 1.3.6戦争で行われたのと同じように、次のエラーが発生します。

Caused by: javax.management.ReflectionException: Cannot find setter method setLoader StandardContext[null]
        at org.apache.tomcat.util.modeler.ManagedBean.getSetter(ManagedBean.java:560)
        at org.apache.tomcat.util.modeler.BaseModelMBean.setAttribute(BaseModelMBean.java:407)
        at org.jboss.mx.server.RawDynamicInvoker.setAttribute(RawDynamicInvoker.java:70)
        at org.jboss.mx.server.MBeanServerImpl.setAttribute(MBeanServerImpl.java:608)
        at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:212)
        at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
        at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
        ... 112 more
Caused by: java.lang.NoSuchMethodException: org.apache.catalina.core.StandardContext.setLoader(org.apache.catalina.Loader)
        at java.lang.Class.getMethod(Class.java:1605)
        at org.apache.tomcat.util.modeler.ManagedBean.getSetter(ManagedBean.java:553)
        ... 118 more
2012-11-08 16:09:51,604 INFO  [org.jboss.web.tomcat.service.TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../deploy/jmx-console.war/
2012-11-08 16:09:51,664 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Incomplete Deployment listing:

--- Incompletely deployed packages ---
org.jboss.deployment.DeploymentInfo@5cc18807 { url=file:/usr/local/JBoss/jboss-4.2.2.GA/server/default/deploy/xxxxx-1.0.war }
  deployer: MBeanProxyExt[jboss.web:service=WebServer]
  status: Deployment FAILED reason: Error during deploy; - nested throwable: (javax.management.ReflectionException: Cannot find setter method setLoader StandardContext[null])
  state: FAILED
  watch: file:/usr/local/JBoss/jboss-4.2.2.GA/server/default/deploy/xxxxx-1.0.war
  altDD: null
  lastDeployed: 1352390987263
  lastModified: 1352390987000
  mbeans:

--- MBeans waiting for other MBeans ---
ObjectName: jboss.web.deployment:war=xxxxx-1.0.war,id=1556187143
  State: FAILED
  Reason: org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.management.ReflectionException: Cannot find setter method setLoader StandardContext[null])

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.web.deployment:war=xxxxx-1.0.war,id=1556187143
  State: FAILED
  Reason: org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.management.ReflectionException: Cannot find setter method setLoader StandardContext[null])

それで、それは戦争中のlibのカタリナクラスとすでにjbossのカタリナクラスの間の衝突だと思っていますか?1.3.6のときは問題なく動作しましたが、2.1.1 grails tomcatプラグインに追加されたものであり、grailsプラグインからサブ依存関係を除外することは可能ですか?

ありがとう。

4

1 に答える 1

0

他の誰かが探している場合に備えて、「解決策」を見つけました。

プラグインの宣言をapplication.propertiesからBuildConfig.groovyに移動すると、エラーは消えます。それが実際に「修正」されたのか、それともTomcatプラグインのクリーンアップ/再インストールが原因でクリアされたのかはわかりませんが、デプロイ時のエラーは削除されました。

この後、別のエラーが発生し、JBossのHibernateライブラリがGrails2.1.1の依存関係のものよりも古くなっています。

Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.   
(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, 
java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager)

これは、JBossにアプリ自体の代わりにアプリのライブラリを使用するように指示するためのここでの指示に従うことで修正されました。

于 2012-11-12T18:30:47.180 に答える