2012-02-24 9 views
0

Jetty Webサーバーを使用してGeronimoコンテナーにJava EE Webアプリケーションをデプロイしようとしています。残念ながら私はいくつかの問題がある、私はNoSuchMethodエラーを取得しています。誰かが同様の問題を抱えているのを見ました。解決策は、クラスパスから冗長なスプリングフレームワークライブラリを削除することでした。しかし、それは私のためには機能しません、私のclasspathが正しく構築されます。ここではWEB-INF/libディレクトリの内容です:Geronimo v2.1 with Jetty

aopalliance-1.0.jar 
    commons-collections-3.2.1.jar 
    commons-logging-1.1.1.jar 
    dom4j-1.6.1.jar 
    h2-1.3.164.jar 
    hibernate-commons-annotations-3.2.0.Final.jar 
    hibernate-core-3.6.9.Final.jar 
    hibernate-jpa-2.0-api-1.0.1.Final.jar 
    javassist-3.12.1.GA.jar 
    log4j-1.2.16.jar 
    slf4j-api-1.6.4.jar 
    slf4j-log4j12-1.6.4.jar 
    spring-aop-3.1.1.RELEASE.jar 
    spring-asm-3.1.1.RELEASE.jar 
    spring-beans-3.1.1.RELEASE.jar 
    spring-context-3.1.1.RELEASE.jar 
    spring-core-3.1.1.RELEASE.jar 
    spring-expression-3.1.1.RELEASE.jar 
    spring-hibernate3-2.0.8.jar 
    spring-jdbc-3.1.1.RELEASE.jar 
    spring-orm-3.1.1.RELEASE.jar 
    spring-tx-3.1.1.RELEASE.jar 
    spring-web-3.1.1.RELEASE.jar 
    spring-webmvc-3.1.1.RELEASE.jar 
    spring-webmvc-3.1.1.RELEASE-sources.jar 

は、ライブラリのトラブルを冗長するために参照するには、WEB-INF/libに与えられたものとは異なる、スプリングフレームワークのWebコンテナの負荷独自のバージョンということも可能ということでしょうか?私はWEB-INF/libディレクトリのほうが優先順位が高いと思っていました.Geronimoのプロジェクトの最初のプロジェクトですが、プロジェクトにgeronimo-web.xmlファイルが含まれている可能性があります。ここで

は、スタックトレースです:

Geronimo Application Server started 
    2012-02-24 20:19:17,463 WARN [JettyModuleBuilder] Web application . does not contain a WEB-INF/geronimo-web.xml deployment plan. This may or may not be a problem, depending on whether you have things like resource references that need to be resolved. You can also give the deployer a separate deployment plan file on the command line. 
    2012-02-24 20:19:22,122 ERROR [log] failed dispatcher 
    org.apache.xbean.recipe.ConstructionException: Error invoking constructor: public org.springframework.web.servlet.DispatcherServlet() 
     at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:962) 
     at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276) 
     at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96) 
     at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61) 
     at org.apache.geronimo.j2ee.annotation.Holder.newInstance(Holder.java:173) 
     at org.apache.geronimo.jetty6.JettyWebAppContext.newInstance(JettyWebAppContext.java:317) 
     at org.apache.geronimo.jetty6.InternalJettyServletHolder.newInstance(InternalJettyServletHolder.java:81) 
     at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:253) 
     at org.apache.geronimo.jetty6.InternalJettyServletHolder.internalDoStart(InternalJettyServletHolder.java:120) 
     at org.apache.geronimo.jetty6.InternalJettyServletHolder.access$000(InternalJettyServletHolder.java:38) 
     at org.apache.geronimo.jetty6.InternalJettyServletHolder$StartCommand.lifecycleMethod(InternalJettyServletHolder.java:131) 
     at org.apache.geronimo.jetty6.handler.AbstractImmutableHandler.lifecycleCommand(AbstractImmutableHandler.java:62) 
     at org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.lifecycleCommand(ThreadClassloaderHandler.java:57) 
     at org.apache.geronimo.jetty6.handler.AbstractImmutableHandler.lifecycleCommand(AbstractImmutableHandler.java:60) 
     at org.apache.geronimo.jetty6.handler.InstanceContextHandler.lifecycleCommand(InstanceContextHandler.java:81) 
     at org.apache.geronimo.jetty6.handler.AbstractImmutableHandler.lifecycleCommand(AbstractImmutableHandler.java:60) 
     at org.apache.geronimo.jetty6.handler.UserTransactionHandler.lifecycleCommand(UserTransactionHandler.java:63) 
     at org.apache.geronimo.jetty6.handler.AbstractImmutableHandler.lifecycleCommand(AbstractImmutableHandler.java:60) 
     at org.apache.geronimo.jetty6.handler.ComponentContextHandler.lifecycleCommand(ComponentContextHandler.java:57) 
     at org.apache.geronimo.jetty6.InternalJettyServletHolder.doStart(InternalJettyServletHolder.java:107) 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) 
     at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612) 
     at org.mortbay.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:980) 
     at org.mortbay.jetty.servlet.ServletHandler.setServletMappings(ServletHandler.java:1037) 
     at org.mortbay.jetty.servlet.ServletHandler.addServletMapping(ServletHandler.java:736) 
     at org.apache.geronimo.jetty6.JettyWebAppContext.registerServletHolder(JettyWebAppContext.java:497) 
     at org.apache.geronimo.jetty6.JettyServletHolder.<init>(JettyServletHolder.java:80) 
     at sun.reflect.GeneratedConstructorAccessor62.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
     at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:948) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) 
     at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541) 
     at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111) 
     at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146) 
     at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120) 
     at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176) 
     at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44) 
     at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) 
     at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541) 
     at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111) 
     at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146) 
     at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120) 
     at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176) 
     at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44) 
     at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) 
     at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124) 
     at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555) 
     at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379) 
     at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456) 
     at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:188) 
     at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:563) 
     at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:544) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) 
     at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124) 
     at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867) 
     at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239) 
     at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) 
     at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124) 
     at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867) 
     at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239) 
     at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172) 
     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) 
     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) 
     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427) 
     at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72) 
     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1367) 
     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788) 
     at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) 
     at sun.rmi.transport.Transport$1.run(Transport.java:159) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at sun.rmi.transport.Transport.serviceCall(Transport.java:155) 
     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) 
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) 
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
    Caused by: java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resolveTypeArguments(Ljava/lang/Class;Ljava/lang/Class;)[Ljava/lang/Class; 
     at org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo(GenericConversionService.java:275) 
     at org.springframework.core.convert.support.GenericConversionService.addConverter(GenericConversionService.java:93) 
     at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:61) 
     at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:53) 
     at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:42) 
     at org.springframework.core.env.AbstractPropertyResolver.<init>(AbstractPropertyResolver.java:44) 
     at org.springframework.core.env.PropertySourcesPropertyResolver.<init>(PropertySourcesPropertyResolver.java:42) 
     at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:101) 
     at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54) 
     at org.springframework.web.context.support.StandardServletEnvironment.<init>(StandardServletEnvironment.java:43) 
     at org.springframework.web.servlet.HttpServletBean.<init>(HttpServletBean.java:90) 
     at org.springframework.web.servlet.FrameworkServlet.<init>(FrameworkServlet.java:211) 
     at org.springframework.web.servlet.DispatcherServlet.<init>(DispatcherServlet.java:323) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
     at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:952) 
     ... 96 more 

答えて

1

最後に、2つの解決策が見つかりました。より明白なのは、Geronimo専用のSpringライブラリを使用することです.Geronimo v2.1はSpring 2.5.6を使用します。より合理的なものは、geronimo-web.xmlを作成/編集することです。私にとっては、ロード順序を上書きする必要がありました。つまり、WEB-INF/libライブラリのロード優先度が高くなります。

<sys:environment> 
    <sys:hidden-classes> 
     <sys:filter>org.springframework</sys:filter> 
     <sys:filter>org.hibernate</sys:filter> 
     <sys:filter>javax.persistence</sys:filter> 
     <sys:filter>org.apache.log4j</sys:filter> 
     <sys:filter>org.slf4j</sys:filter> 
     <sys:filter>org.apache.tiles</sys:filter> 
     <sys:filter>javassist</sys:filter> 
     <sys:filter>org.h2</sys:filter> 
     <sys:filter>org.dom4j</sys:filter> 
     <sys:filter>org.apache.commons</sys:filter> 
     <sys:filter>org.aopalliance</sys:filter> 
    </sys:hidden-classes> 
</sys:environment> 
0

これは問題です:

NoSuchMethodError: org.springframework.core.GenericTypeResolver. 
resolveTypeArguments(Ljava/lang/Class;Ljava/lang/Class;)[Ljava/lang/Class; 

この方法は、春3.0.0.RELEASE3.0.0.M4と比較して)で導入されました。また、それはあなたが使用していると信じている3.1.1.RELEASEの一部です。

重複しているJARを確認しないでください。特に、spring-core*.jarがあります。

+0

私はそれが理由:(私は春*ジャーのない重複を持っていないではないことはほぼ確信しています。私は、TomcatのすべてのものとのGeronimo v2.1の下、このプロジェクトを実行します。また場合OKです... – bontade