Maven Projekt in Tomcat deployen über Eclipse macht Probleme

LitWeb

Mitglied
Hallo Leute,

ich habe mir ein kleines Maven Projekt angelegt in meinem Eclipse. Ein Tomcat 7 ist auf meinem REchner installiert. Über Eclipse konnte ich mir nun einen Server anlegen, was auch klappte. Aber das Maven Projekt konnte ich z.B. nicht über Add and Remove hinzufügen, sondern über Modules Add External Web Module.

Ich starte nun den Tomcat im Eclipse und versuche über den Browser http://localhost:8080 wenigstens den Tomcat selber aufzurufen, aber ich bekomme nen 404er Error.

Kann mir einer bitte weiter helfen und mal nen Tipp geben was ich machen muss damit es richtig läuft?

Was bräuchtet ihr eventuell an aussagefähigen Auszügen meines Projektes (pom, web.xml)?

Vielen Dank für eure Hilfe, Gruß Lit-Web
 
Genau. Pom und web.xml. Und vielleicht ein Screenshot von deiner Projekt Struktur im Eclipse. Aber wenn du ein 404 bekommst ist das schonmal ganz gut. Damit ist schonmal der Tomcat am Laufen. Du hast halt noch die falsche URL. Wie heißt dein fertiges WAR? Am besten mal mit build das Artifact bauen. Sollte dein Artifact TEST heißen ist die URL deiner Anwendung http://localhost:8080/TEST.
 
Guten Abend und vielen Dank für deine Antwort.

Hier die pom.xml

Code:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.myapp.server</groupId>
  <artifactId>org-myapp</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>org-myapp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>3.2.4.RELEASE</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context</artifactId>
    	<version>3.2.4.RELEASE</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-core</artifactId>
    	<version>3.2.4.RELEASE</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-beans</artifactId>
    	<version>3.2.4.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.12</version>
    </dependency>
    
    <dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
	</dependency>
    
    <dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>1.6.1</version>
	</dependency>
	
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.16</version>
	</dependency>
    
  </dependencies>
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-war-plugin</artifactId>
  			<version>2.3.2</version>
  		</plugin>
  		<plugin>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<configuration>
  				<source>1.5</source>
  				<target>1.5</target>
  			</configuration>
  		</plugin>
  	</plugins>
  	<finalName>myapp-Test</finalName>
  </build>
</project>

Die web.xml

Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
	<servlet>
		<servlet-name>decon-rest-service</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>restservice-decon</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

Und im Anhang noch ein Screenshot der Projektstruktur, ich hoffe da ist alles zu sehen was du sehen musst.

Gruß Lit-Web
 

Anhänge

  • projekt.png
    projekt.png
    27,8 KB · Aufrufe: 15
Ok. Zu aller erst: Deine Anwendung baut jars. Schau in dein target Verzeichnis. Du brauchst aber ein war (web archive). Weiter: Spring context reicht aus. Darin ist schon core und beans als dependency enthalten. Auch das dispatcher servlet ist nicht richtig gemappt. Dazu bitte mal den Teil in der spring doku lesen.
 
Ich habe noch mal ein neues Maven Projekt mit dem archetype webapp angelegt.

Meine pom.xml

Code:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>decon</groupId>
  <artifactId>decon-core</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>decon-core Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>3.2.4.RELEASE</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context</artifactId>
    	<version>3.2.4.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.12</version>
    </dependency>
    
    <dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
	</dependency>
    
    <dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>1.6.1</version>
	</dependency>
	
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.16</version>
	</dependency>
  </dependencies>
  <build>
    <finalName>decon-core</finalName>
  </build>
</project>

Meine web.xml

Code:
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Archetype Created Web Application</display-name>
  
  <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>WEB-INF/config/rest-webservices.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<servlet>
		<servlet-name>decon-rest-service</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>decon-rest-service</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

Die rst-webservices.xml

Code:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
       xmlns:oxm="http://www.springframework.org/schema/oxm"  
       xmlns:util="http://www.springframework.org/schema/util"  
       xmlns:mvc="http://www.springframework.org/schema/mvc"  
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
                                    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
                                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
                                    http://www.springframework.org/schema/oxm  
                                    http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd  
                                    http://www.springframework.org/schema/util  
                                     http://www.springframework.org/schema/util/spring-util-3.0.xsd">
                                     
	<mvc:annotation-driven/>
	<context:component-scan base-package="org.decon.services" />
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
	
</beans>

Im ANhang die Projektstruktur wie sie nun aussieht.

Und so habe ich versucht etwas im Browser aufzurufen.

http://localhost:8080/decon-rest-service

Immer noch der 404er Error.

Gruß Lit-Web
 

Anhänge

  • projekt.png
    projekt.png
    11,1 KB · Aufrufe: 12
Im Ordner E:\Development\Java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

ist das Projekt aber auch nicht zu finden. Das ist der Ordner der als Deployment Ordner in der Tomcat Config in Eclipse angegeben ist.
 
Kurz: http://localhost:8080/decon-rest-service ist die falsche URL. Es müsste: http://localhost:8080/decon-core sein. Zu deinem tomcat plugin kann ich nicht viel sagen bzw. wie man tomcat unter eclipse konfiguriert. Ich arbeite mit Itellij IDEA. Dazu solltest du bei google reichlich finden.

Edit:

Jetzt verstehe ich wieso du decon-rest-service in die URL gibst.. Du versuchst das DispatcherServlet von Spring aufzurufen. Das wird nix. Bitte lese die Spring Dokumentation.

http://spring.io/guides/gs/rest-service/ - Guide
http://docs.spring.io/spring/docs/3.2.5.RELEASE/spring-framework-reference/htmlsingle/#spring-web - Einfach mal lesen.
 
Zuletzt bearbeitet:
Zurück