2013-03-02 19 views
8

Mój gae + wiosna + maven projekt działa idealnie. Ale nie mogę sprawić, żeby działało przy użyciu eclipse.Zależność między wrzecionami sieciowymi nie jest publikowana za eclipse

Wygląda na wiosna-internetowej uzależnienia od zadeklarowanej w moim pom.xmlznika z WEB-INF/lib gdy uruchamiam mojego projektu przy użyciu GAE z Eclipse (przy użyciu Google wtyczki Uruchom jako > Aplikacja internetowa). Więc bez wiosny internecie to jest wyjątek:

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

(Pełna StackTrace GAE here)

Od konsoli działa mvn clean package gae:run, aplikacja działa jak czar i wiosna-web znajduje się pod Katalog WEB-INF/lib zgodnie z oczekiwaniami.

Wystarczy opublikowany mój projekt testowy na BitBucket: https://bitbucket.org/jelies/gae-spring-maven

Każdy pomysł dlaczego wiosna-web nie jest opublikowany na WEB-INF/lib podczas uruchamiania webapp z Eclipse?


Zastosowanie:

  • SpringSource ToolSuite 3.1.0 (na podstawie Eclipse 3.8)
  • Java 6
  • Wiosna 3.2.1
  • Maven 3.0.4
  • Google App Engine 1.7.5
  • maven-gae-plugin 0.9.6

Aktualizacja:wiosna-web zależność jest publikowane WEB-INF/lib przy użyciu sprężyny wersję 3.1.4.RELEASE. Tak się nie dzieje z żadną wersją 3.2.X.

+0

Czy uruchamiasz serwer dev z wtyczką m2eclipse i tymi samymi celami, co na konsoli? A może chcesz uruchomić serwer deweloperski za pomocą wtyczki Google (uruchomić jako aplikację internetową)? – Eich

+0

Chcę uruchomić serwer deweloperski za pomocą wtyczki Google, używając polecenia "uruchom jako -> aplikację internetową", tak jak powiedziałeś. – jelies

+0

Powinieneś użyć wtyczki [m2eclipse] (http://www.sonatype.org/m2eclipse/) i uruchomić serwer dev z mavenem. Maven kopiuje każdą zależność (serwer) do folderu 'WEB-INF/lib'. 'Pom.xml' nie ma wpływu na wtyczkę Google'a (w żadnym wypadku). Jeśli chcesz uruchomić serwer za pomocą wtyczki Google, musisz skopiować wszystkie biblioteki na własną rękę do folderu 'WEB-INF/lib'. Ta sama procedura jest potrzebna, jeśli chcesz wdrożyć swój projekt za pomocą wtyczki Google do GAE. Moim zdaniem lepiej (i znacznie łatwiej) używać maven w obu przypadkach. Czy naprawdę potrzebujesz wtyczki Google? – Eich

Odpowiedz

0

Zdecydowanie, wiosna 3.2.x z zaćmieniem i maven nie działa; spring-web nie jest publikowane pod numerem WEB-INF/lib podczas uruchamiania aplikacji z wtyczki Google Eclipse.

Próbowano za pomocą sprężyny 3.2.1 i 3.2.2. Działa tylko dla mnie, używając niższych wersji (teraz używam wersji 3.1.4).

1

Jeśli twój.Plik classpath ma wpis <classpathentry kind="output" path="target/classes"/>, spróbuj zmienić go na katalog WEB-INF/classes. Mój jest skonfigurowany zgodnie ze standardami, więc zmieniłem tę linię na <classpathentry kind="output" path="src/main/webapp/WEB-INF/classes"/>. To właśnie naprawiło moje problemy (Eclipse Juno, WAS 7, brak instalacji m2e).

Ponadto w przypadku, gdy dotyczy innych, powinienem wspomnieć, że z moim serwerem (Websphere) wybieram ustawienie "Uruchom serwer z zasobami w obszarze roboczym".

Ten numer pokazuje, jak bardzo nie rozumiem publikacji Eclipse, ale przed zmianą, kiedy wybrałem ustawienie "w przestrzeni roboczej", faktycznie opublikowano moje zasoby w \ workspace.metadata.plugins \ org.eclipse.wst .server.core \ tmp0 i WEB-INF \ lib nie zawierało wstęgi. Jednak po zmianie powyżej nie widzę już mojego kodu opublikowanego w tym katalogu. Nie jestem do końca pewien, w jaki sposób mój serwer uzyskuje potrzebne pliki binarne, ale wygląda na to, że działa.

Jako uwaga boczna/dodatkowy bonus (może zupełnie niepowiązany), nie muszę już publikować, aby zobaczyć aktualizacje moich stron JSP, gdy wprowadzę w nich zmiany.

+0

Dzięki, spróbuję! – jelies

0

to ustalone to dla mnie:

  1. Znajdź lokalizację wiosenno-web.jar to jest wliczone w ciebie aplikacji internetowej. W moim przypadku jest to w user.m2 \ reository \ org \ springframework \ spring-web \ 4.1.6.RELEASE \ spring-web-4.1.6.RELEASE.jar
  2. Open spring-web-4.1.6.RELEASE. jar en eg. 7zip
  3. usunąć ten plik ze słoika: META-INF \ web-fragment.xml (w 7zip prawym przyciskiem myszy plik -> usuń)
  4. Zamknij 7zip i uruchom "Publish" na serwerze w Eclipse

Więcej informacji: https://jira.spring.io/browse/SPR-10494?focusedCommentId=94572&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-94572

Powiązane problemy