2010-07-29 10 views
6

मैं मूल स्ट्रूट 2, मेवेन वेब ऐप बना रहा हूं और जब मैं टॉमकैट 6 या जेटी पर तैनात करता हूं तो यह त्रुटि प्राप्त कर रहा हूं। क्या किसी ने इसे देखा है?स्ट्रूट्स 2 तैनाती में त्रुटि: बीन लोड करने में असमर्थ: टाइप: class: com.opensymphony.xwork2.ObjectFactory

2010-07-29 15:33:38.801::WARN: failed struts2 
    Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar:file:/C:/workspaces/test/test/target/work/webapp/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:208) 
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:131) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452) 
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) 
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:139) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:510) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) 
    at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:110) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:222) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) 
    at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132) 
    at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:357) 
    at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:293) 
    at org.mortbay.jetty.plugin.Jetty6RunWar.execute(Jetty6RunWar.java:67) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    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:592) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
    Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name xwork has already been loaded by bean - jar:file:/C:/workspaces/ulearn/ulearn/target/work/webapp/WEB-INF/lib/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72 - bean - jar:file:/C:/workspaces/ulearn/ulearn/target/work/webapp/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:193) 
... 47 more 

Maven का उपयोग करना ...

<dependency> 
    <groupId>org.apache.struts</groupId> 
    <artifactId>struts2-core</artifactId> 
    <version>2.1.8.1</version> 
    </dependency> 

web.xml

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

देखो बहुत सीधे आगे, मुझे समझ नहीं आता क्यों यह लोड नहीं होगा। मैंने मूल ट्यूटोरियल का पालन किया। मैं इस त्रुटि संदेश के लिए googled, और कुछ भी प्रासंगिक खोजने में असमर्थ था।

+0

मुझे वेबलॉगिक सर्वर का उपयोग करने में एक ही समस्या थी, मैंने सर्वर के गुणों को ग्रहण, वेबलॉगिक - प्रकाशन में सर्वर टैब के साथ बदल दिया, ** प्रकाशित ने एक विस्फोटित संग्रह बनाया ** शायद किसी के पास एक ही त्रुटि है –

+0

एक फॉलोअप के रूप में, मेरे रनपाइम पर मेरे क्लासपाथ में दो स्ट्रूट 2 संस्करण थे, ऐसा इसलिए है क्योंकि मैंने एक संस्करण के साथ जेटी शुरू की, फिर बिना साफ किए अलग संस्करण के साथ फिर से शुरू किया। तो पोम में 1 संस्करण, लेकिन दो रन टाइम क्लासपाथ में। जेटी की सफाई और पुनरारंभ करना :) – Andy

उत्तर

20

आपकी समस्या वास्तव में काफी स्पष्ट है अगर आप स्टैक ट्रेस पढ़ें:

Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the 
name xwork has already been loaded by bean - 
jar:file:/C:/workspaces/ulearn/ulearn/target/work/webapp/WEB-INF/lib/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72 
- bean - 
jar:file:/C:/workspaces/ulearn/ulearn/target/work/webapp/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 

आप अपने WEB-INF/lib निर्देशिका में struts2-core-2.0.11.2.jarऔरstruts2-core-2.1.8.1.jar की एक प्रति की एक प्रति है। मुझे लगता है कि आपको केवल उनमें से एक होना चाहिए। कुछ सफाई करें (mvn clean चलाना पर्याप्त हो सकता है)।


पुनश्च:

jar:file:/C:/workspaces/test/test/target/work/webapp/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 

वहाँ निश्चित रूप से कुछ अजीब और गन्दा अपने classpath के साथ है: मुझे पता नहीं क्यों तुम भी सामान शो के रूप में C:/workspace/test से आ रही हो पहली पंक्ति होती है। मेरे पास ऊपर दिए गए एक से परे कोई स्पष्टीकरण नहीं है।

2

ऊपर जवाब

साथ सहमत ऊपर जार के लिए अपने पुस्तकालय और classpath की जाँच करें और उन्हें

कभी कभी ठीक भले ही जार आईडीई में नहीं देखा जाता है, वे का निर्माण फ़ाइलों पूर्णांक मौजूद हैं, तो क्लासपाथ का एक फिक्स और स्वच्छ और निर्मित समस्या का समाधान करना चाहिए।

+0

+1 साफ़ करने के लिए +1! ... – Andy

0

मुझे लगता है कि struts2 कोर-2.1.8.1.jar प्रतिलिपि या आप को शामिल किया है इस जार अपने WebApplication में कुछ जहां फाइल तो यह हटाने और जारी रखने के

0

समस्या: संघर्ष विभिन्न संस्करणों के 2 फ़ाइलें के रूप में हुई वेब कंटेनर द्वारा लोड किया जा रहा है

समाधान: बस पथ C:/workspaces/ulearn/ulearn/target/work/webapp/WEB-INF/lib/ आपके कंप्यूटर के लिए जाने के लिए और struts2-core-2.0.11.2.jar फ़ाइल को हटाने और केवल एक नवीनतम रखने के लिए। यदि इस प्रकार का संघर्ष किसी अन्य फ़ाइल के साथ भी होता है तो उस फ़ाइल को हटाएं इसके बाद कोई अपवाद नहीं होगा।

संबंधित मुद्दे