server encountered an internal error ()

Hello,

I have a really weird error.
I create a Vaadin project in Eclipse. Run it (in Tomcat) and it works. Then I enable dependecy management (Maven) on that project and it breaks.

My pom.xml downloaded from
Maven, Spring, Vaadin and Google AppEngine, Happy Together

<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>VaadinReST</groupId>
  <artifactId>VaadinReST</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>VaadinReST</name>
	<properties>
		<spring.version>3.0.0.RELEASE</spring.version>
		<aspectj.version>1.6.3</aspectj.version>
		<vaadin.version>6.2.0</vaadin.version>
		<appengine.version>1.3.0</appengine.version>
        <datanucleus.version>1.1.5</datanucleus.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>com.google.appengine</groupId>
			<artifactId>appengine-api-1.0-sdk</artifactId>
			<version>${appengine.version}</version>
		</dependency>
		<dependency>
			<groupId>com.google.appengine</groupId>
			<artifactId>appengine-api-1.0-labs</artifactId>
			<version>${appengine.version}</version>
		</dependency>
		<dependency>
			<groupId>com.google.appengine.orm</groupId>
			<artifactId>datanucleus-appengine</artifactId>
			<version>1.0.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.datanucleus</groupId>
			<artifactId>datanucleus-jpa</artifactId>
			<version>${datanucleus.version}</version>
		</dependency>
		<dependency>
			<groupId>org.datanucleus</groupId>
			<artifactId>datanucleus-core</artifactId>
			<version>${datanucleus.version}</version>
		</dependency>
				<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jpa_3.0_spec</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jta_1.1_spec</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>javax.jdo</groupId>
			<artifactId>jdo2-api</artifactId>
			<version>2.3-eb</version>
		</dependency>
		<dependency>
			<groupId>com.vaadin</groupId>
			<artifactId>vaadin</artifactId>
			<version>${vaadin.version}</version>
		</dependency>
		<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-core</artifactId>
    		<version>${spring.version}</version>
  		</dependency>
  		<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-beans</artifactId>
    		<version>${spring.version}</version>
  		</dependency>
  		<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>${spring.version}</version>
		</dependency>
  		<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-web</artifactId>
    		<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>myproject</finalName>
		<outputDirectory>war/WEB-INF/classes</outputDirectory>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>ISO-8859-1</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<encoding>ISO-8859-1</encoding>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-clean-plugin</artifactId>
				<configuration>
					<filesets>
						<fileset>
							<directory>war/WEB-INF/lib</directory>
							<includes>
								<include>*.jar</include>
							</includes>
							<followSymlinks>false</followSymlinks>
						</fileset>
					</filesets>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>clean</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>war/WEB-INF/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.0.2</version>
				<configuration>
					<warSourceDirectory>war</warSourceDirectory>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>aspectj-maven-plugin</artifactId>
				<version>1.0</version>
				<dependencies>
				<dependency>
						<groupId>org.aspectj</groupId>
						<artifactId>aspectjrt</artifactId>
						<version>${aspectj.version}</version>
					</dependency>
					<dependency>
						<groupId>org.aspectj</groupId>
						<artifactId>aspectjtools</artifactId>
						<version>${aspectj.version}</version>
					</dependency>
    			</dependencies>
				<executions>
					<execution>
						<goals>
							<goal>compile</goal>
							<goal>test-compile</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<aspectLibraries>
						<aspectLibrary>
							<groupId>org.springframework</groupId>
							<artifactId>spring-aspects</artifactId>
						</aspectLibrary>
					</aspectLibraries>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>ISO-8859-1</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<configuration>
					<wtpversion>2.0</wtpversion>
					<testOutputDirectory>target/test-classes</testOutputDirectory>
					<classpathContainers>
						<classpathContainer>com.google.appengine.eclipse.core.GAE_CONTAINER</classpathContainer>
					</classpathContainers>
					<buildcommands>
						<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
						<buildcommand>com.google.gdt.eclipse.core.webAppProjectValidator</buildcommand>
						<buildcommand>com.google.appengine.eclipse.core.enhancerbuilder</buildcommand>
						<buildcommand>com.google.appengine.eclipse.core.projectValidator</buildcommand>
						<buildCommand>
							<name>org.eclipse.ajdt.core.ajbuilder</name>
							<arguments>
								<aspectPath>org.springframework.aspects</aspectPath>
							</arguments>
						</buildCommand>
						<buildCommand>
							<name>org.springframework.ide.eclipse.core.springbuilder</name>
						</buildCommand>
					</buildcommands>
					<additionalProjectnatures>
						<projectnature>org.eclipse.jdt.core.javanature</projectnature>
						<projectnature>com.google.appengine.eclipse.core.gaeNature</projectnature>
						<projectnature>com.google.gdt.eclipse.core.webAppNature</projectnature>
						<projectnature>com.vaadin.integration.eclipse.widgetsetNature</projectnature>
						<projectnature>org.eclipse.ajdt.ui.ajnature</projectnature>
						<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
					</additionalProjectnatures>
					<excludes>
						<!-- Included in GAE_CONTAINER -->
						<exclude>com.google.appengine:appengine-api-1.0-sdk</exclude>
						<exclude>com.google.appengine:appengine-api-1.0-labs</exclude>
						<exclude>com.google.appengine.orm:datanucleus-appengine</exclude>
						<exclude>org.datanucleus:datanucleus-jpa</exclude>
						<exclude>org.datanucleus:datanucleus-core</exclude>
						<exclude>org.apache.geronimo.specs:geronimo-jpa_3.0_spec</exclude>
						<exclude>org.apache.geronimo.specs:geronimo-jta_1.1_spec</exclude>
						<exclude>javax.jdo:jdo2-api</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>
	
	<repositories>
		<repository>
			<id>www.mvnsearch.org</id>
			<name>Maven search repository</name>
			<url>http://www.mvnsearch.org/maven2/</url>
		</repository>
	</repositories>
</project>

My web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>VaadinReST</display-name>
	<context-param>
		<description>
		Vaadin production mode</description>
		<param-name>productionMode</param-name>
		<param-value>false</param-value>
	</context-param>
	<servlet>
		<servlet-name>Vaadinrest Application</servlet-name>
		<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
		<init-param>
			<description>
			Vaadin application class to start</description>
			<param-name>application</param-name>
			<param-value>com.example.vaadinrest.VaadinrestApplication</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>Vaadinrest Application</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>

My stack trace

17-giu-2011 14.02.53 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Allocate exception for servlet Vaadinrest Application
javax.servlet.ServletException: Failed to load application class: com.example.vaadinrest.VaadinrestApplication
	at com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:71)
	at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1190)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:813)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Thanks a lot in advance for your help,
Francesco

(I am the author of the blog post you mentioned)

It’s probably a classpath related issue. It is notoriously difficult to get to run Maven and Eclipse in sync. In fact, since I wrote that blog post, I’ve removed any Eclipse integration and I always run my Vaadin application through the GAE Maven plugin (
see this post for an example project
)

I see you are trying to run the project on Tomcat. There is a significant difference between “true” Java web applications and the ones that GAE uses. So if you used any example code I wrote, that might be causing it.

Otherwise, have you generated the Eclipse config files via “mvn eclipse:eclipse” or are you using the m2eclipse plugin? Using the 2 together is not advised.

You may also need to properly configure the AspectJ Eclipse plugin, that one doesn’t always work nice with Maven too.

Good luck,
Peter

Hi Peter,

I am using m2eclipse plugin.

I’ll try the example project you suggested with GAE and see if it works.
When I come to page 3 of the guide and I have to run the following command
gae:run
it doesn’t work neither in window console nor in eclipse console.

Any help? Sorry but I am a noob Java/Eclipse/Vaadin user! :wink: