2013-03-02 8 views
8

के साथ प्रकाशित नहीं किया जा रहा है मेरा gae + spring + maven प्रोजेक्ट पूरी तरह से काम करता है। लेकिन मैं इसे ग्रहण का उपयोग करके काम नहीं कर सकता।वसंत-वेब मेवेन निर्भरता ग्रहण

वसंत-वेब निर्भरता मेरी pom.xml में घोषितवेब-INF/lib से गायब है की तरह लगता है जब मैं अपने प्रोजेक्ट ग्रहण से (गूगल प्लगइन, भागो के रूप में उपयोग करते हुए GAE का उपयोग कर चलाए > वेब अनुप्रयोग)। तो बिना वसंत-वेब इस अपवाद है:

Could not instantiate listener org.springframework.web.context.ContextLoaderListener 
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 

(पूर्ण GAE स्टैकट्रेस here)

कंसोल से, mvn clean package gae:run चल रहा है, अनुप्रयोग एक आकर्षण और वसंत-वेब नीचे रखा जाता है की तरह काम करता वेब-आईएनएफ/lib निर्देशिका अपेक्षित के रूप में।

बस BitBucket पर अपने परीक्षण परियोजना प्रकाशित: https://bitbucket.org/jelies/gae-spring-maven

किसी भी विचार क्यों वसंत-वेबवेब-INF/lib को प्रकाशित किया जा रहा है जब ग्रहण से webapp की शुरूआत?


का उपयोग करना:

  • SpringSource ToolSuite 3.1.0
  • जावा (ग्रहण 3.8 के आधार पर) 6
  • वसंत 3.2.1
  • Maven 3.0.4
  • गूगल ऐप इंजन 1.7.5
  • maven-gae-plugin 0.9.6

अद्यतन:वसंत-वेब निर्भरता वेब-INF/lib को प्रकाशित किया जा रहा है जब वसंत संस्करण 3.1.4.RELEASE का उपयोग कर। यह किसी भी 3.2.एक्स संस्करण के साथ नहीं हो रहा है।

+0

क्या आप m2eclipse प्लगइन और कंसोल पर समान लक्ष्यों के साथ dev-server चलाते हैं? या आप Google प्लगइन के साथ dev सर्वर शुरू करना चाहते हैं (के रूप में-> वेब अनुप्रयोग)? – Eich

+0

जैसा कि आपने कहा था, "रन के रूप में -> वेब एप्लिकेशन" का उपयोग करके, मैं Google प्लगइन के साथ dev सर्वर को प्रारंभ करना चाहता हूं। – jelies

+0

आपको [m2eclipse] (http://www.sonatype.org/m2eclipse/) प्लगइन का उपयोग करना चाहिए और मेवेन के साथ देव सर्वर प्रारंभ करना चाहिए। मेवेन 'वेब-आईएनएफ/lib' फ़ोल्डर में प्रत्येक (सर्वर) निर्भरता की प्रतिलिपि बनाता है। 'Pom.xml' Google प्लगइन को प्रभावित नहीं करता है (किसी भी मामले में)। यदि आप Google प्लगइन के साथ सर्वर को चलाने के लिए चाहते हैं तो आपको अपने पूरे पुस्तकालयों को 'वेब-आईएनएफ/lib' फ़ोल्डर में कॉपी करना होगा। यदि आप जीएई में Google प्लगइन के साथ अपनी परियोजना को तैनात करना चाहते हैं तो वही प्रक्रिया की आवश्यकता होती है। तो मेरी राय में यह दोनों मामलों में मेवेन का उपयोग करने के लिए बेहतर (और बहुत आसान) है। या आप वास्तव में गूगल प्लगइन की जरूरत है? – Eich

उत्तर

0

निश्चित रूप से, वसंत 3.2.x ग्रहण और मेवेन के साथ काम नहीं कर रहा है; spring-web को Google Eclipse प्लगइन से एप्लिकेशन लॉन्च करते समय WEB-INF/lib पर प्रकाशित नहीं किया जा रहा है।

वसंत 3.2.1 और 3.2.2 के साथ प्रयास किया। यह केवल निम्न संस्करणों का उपयोग कर मेरे लिए काम कर रहा है (अब मैं 3.1.4 का उपयोग कर रहा हूं)।

2

जोड़ा गया मेरी विन्यास के साथ इस समस्या के लिए एक Jira मुद्दा (ग्रहण 4.2, 7.0 था, mvn 3): https://jira.springsource.org/browse/SPR-10494

+0

मेरे मामले में यह Google ऐप इंजन के बजाय WAS7 के साथ हो रहा है, लेकिन हो सकता है कि उससे संबंधित एक बग है। जिरा के लिए धन्यवाद, मैं वहां किसी भी अद्यतन का पालन करूंगा। – jelies

1

अपने हैं।क्लासपाथ फ़ाइल में प्रवेश <classpathentry kind="output" path="target/classes"/> है, इसे अपने वेब-आईएनएफ/कक्षा डीआईआर में बदलने का प्रयास करें। मेरा मैवेन मानकों के साथ स्थापित है, इसलिए मैंने इस लाइन को <classpathentry kind="output" path="src/main/webapp/WEB-INF/classes"/> में बदल दिया। यह सिर्फ मेरे मुद्दों को ठीक करता है (ग्रहण जूनो, WAS 7, कोई m2e इंस्टॉल)।

इसके अलावा, अगर यह दूसरों पर लागू होता है, तो मुझे यह उल्लेख करना चाहिए कि मेरे सर्वर (वेबस्पेयर) के साथ मैं "वर्कस्पेस के भीतर संसाधनों के साथ सर्वर चलाएं" प्रकाशन सेटिंग चुन रहा हूं।

यह समस्या दिखाती है कि मैं वास्तव में एक्लिप्स के प्रकाशन को कितनी समझ नहीं पा रहा हूं, लेकिन जब मैंने "वर्कस्पेस" सेटिंग को चुना तो उस परिवर्तन से पहले यह वास्तव में मेरे संसाधनों को \ workspace.metadata.plugins \ org.eclipse.wst पर प्रकाशित करता था .server.core \ tmp0 और वेब-आईएनएफ \ lib में वसंत-वेब नहीं था। हालांकि, उपरोक्त परिवर्तन के साथ मैं अब उस निर्देशिका में प्रकाशित अपना कोड नहीं देख रहा हूं। मुझे बिल्कुल यकीन नहीं है कि मेरे सर्वर को इसकी आवश्यक बाइनरी कैसे मिल रही है, लेकिन ऐसा लगता है कि यह काम कर रहा है।

एक साइड नोट/जोड़ा बोनस (शायद पूरी तरह से असंबंधित) के रूप में, मुझे अपने जेएसपी में अपडेट देखने के लिए अब एक प्रकाशन करने की आवश्यकता नहीं है जब मैं उन्हें बदलता हूं।

+0

धन्यवाद, मैं इसे आज़मा दूंगा! – jelies

0

यह मेरे लिए यह तय:

  1. वसंत-web.jar के स्थान का पता लगाएं यह आपके वेब ऐप्लिकेशन में शामिल किया जा रहा है। मेरे मामले में user.m2 \ repository \ org \ springframework \ spring-web \ 4.1.6.RELEASE \ spring-web-4.1.6.RELEASE.jar
  2. ओपन वसंत-वेब-4.1.6.RELEASE। जार एन उदाहरण के लिए। 7zip
  3. जार से इस फ़ाइल को हटाएँ: META-INF \ वेब fragment.xml (7zip में सही फ़ाइल क्लिक करें -> हटाना)
  4. बंद 7zip और सर्वर पर "प्रकाशित करें" ग्रहण
  5. में
चलाने

अधिक जानकारी: https://jira.spring.io/browse/SPR-10494?focusedCommentId=94572&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-94572

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