Vraptor4 + Jetty: inicia, mas mostra diretórios (jetty started, but show directories)

9 respostas
F

Meu projeto inicia (starta), mas mostra o diretório do projeto ao invés de executar a aplicação, a rota correspondente ao “/” ou outra qualquer.

Inclusive com o projeto vblank do vraptor:

O que estou fazendo errado?

Desde já agradeço.

9 Respostas

rodrigo.turini

oi @flavio5050

como você está fazendo pra publicar o projeto no jetty?

você criou o war e colocou na pasta de apps dele? está usando plugin do eclipse?
pode passar mais detalhes?

F

Boa noite Sr. Rodrigo.

Já tentei fazer de várias formas, nesse exemplo especificamente estou executando dentro do eclipse com o botão inverso do mouse sobre o projeto -> run -> as server -> jetty.

O Plugin que estou usando é o Eclipse Jetty 3.9.0:
An Eclipse plugin for running/debugging Java web applications with Jetty (successor of JettyLauncher)

Features:

  • Support for Jetty 7, 8 and 9 (incl. 9.1.x and 9.2.x, 9.3.x)
  • Included Jetty8
  • M2Eclipse Support
  • JSP Support
  • JNDI Support
  • JMX Support
  • Websocket Support
  • HTTPS

CONSOLE:


/ // ()__ ___ ___ __ / /__ / // /__ __ ( _ )
/ // __/ / / _ (-</ -) / // / -) / / // / / _ |
/
/_//_/ .
//_/ _/_/_/_/_, / __/
/
/ /___/
Configuration: /var/folders/lv/p4g5spds7rjg09dx0d3vdqlc0000gn/T/eclipseJettyPlugin.config.vraptor_blank_project.xml
Version: 8.1.14.v20131031
Context: /
Port: 8080
Classpath: /Users/fbarbosa/.m2/repository/br/com/caelum/iogi/1.0.0/iogi-1.0.0.jar
/Users/fbarbosa/.m2/repository/br/com/caelum/vraptor/4.2.0-RC3/vraptor-4.2.0-RC3.jar
/Users/fbarbosa/.m2/repository/com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar
/Users/fbarbosa/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
/Users/fbarbosa/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar
/Users/fbarbosa/.m2/repository/com/thoughtworks/paranamer/paranamer/2.7/paranamer-2.7.jar
/Users/fbarbosa/.m2/repository/com/thoughtworks/xstream/xstream/1.4.7/xstream-1.4.7.jar
/Users/fbarbosa/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
/Users/fbarbosa/.m2/repository/javax/ejb/javax.ejb-api/3.2/javax.ejb-api-3.2.jar
/Users/fbarbosa/.m2/repository/javax/enterprise/cdi-api/1.1/cdi-api-1.1.jar
/Users/fbarbosa/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar
/Users/fbarbosa/.m2/repository/javax/interceptor/javax.interceptor-api/1.2/javax.interceptor-api-1.2.jar
/Users/fbarbosa/.m2/repository/javax/servlet/jstl/1.2/jstl-1.2.jar
/Users/fbarbosa/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar
/Users/fbarbosa/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
/Users/fbarbosa/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar
/Users/fbarbosa/.m2/repository/net/vidageek/mirror/1.6.1/mirror-1.6.1.jar
/Users/fbarbosa/.m2/repository/org/hibernate/hibernate-validator-cdi/5.1.1.Final/hibernate-validator-cdi-5.1.1.Final.jar
/Users/fbarbosa/.m2/repository/org/hibernate/hibernate-validator/5.1.1.Final/hibernate-validator-5.1.1.Final.jar
/Users/fbarbosa/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
/Users/fbarbosa/.m2/repository/org/jboss/classfilewriter/jboss-classfilewriter/1.0.4.Final/jboss-classfilewriter-1.0.4.Final.jar
/Users/fbarbosa/.m2/repository/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar
/Users/fbarbosa/.m2/repository/org/jboss/spec/javax/annotation/jboss-annotations-api_1.2_spec/1.0.0.Alpha1/jboss-annotations-api_1.2_spec-1.0.0.Alpha1.jar
/Users/fbarbosa/.m2/repository/org/jboss/spec/javax/el/jboss-el-api_3.0_spec/1.0.0.Alpha1/jboss-el-api_3.0_spec-1.0.0.Alpha1.jar
/Users/fbarbosa/.m2/repository/org/jboss/spec/javax/interceptor/jboss-interceptors-api_1.2_spec/1.0.0.Alpha3/jboss-interceptors-api_1.2_spec-1.0.0.Alpha3.jar
/Users/fbarbosa/.m2/repository/org/jboss/weld/servlet/weld-servlet-core/2.1.2.Final/weld-servlet-core-2.1.2.Final.jar
/Users/fbarbosa/.m2/repository/org/jboss/weld/weld-api/2.1.Final/weld-api-2.1.Final.jar
/Users/fbarbosa/.m2/repository/org/jboss/weld/weld-core-impl/2.1.2.Final/weld-core-impl-2.1.2.Final.jar
/Users/fbarbosa/.m2/repository/org/jboss/weld/weld-spi/2.1.Final/weld-spi-2.1.Final.jar
/Users/fbarbosa/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar
/Users/fbarbosa/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar
/Users/fbarbosa/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
/Users/fbarbosa/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
/Users/fbarbosa/git/vraptor4/vraptor-blank-project/src/main/webapp/WEB-INF/classes
2016-09-01 18:55:01.762:INFO:oejs.Server:jetty-8.1.14.v20131031
18:55:02,284 INFO [Version ] WELD-000900: 2.1.2 (Final)
18:55:03,006 INFO [Bootstrap ] WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
18:55:03,199 INFO [Version ] HV000001: Hibernate Validator 5.1.1.Final
18:55:06,201 INFO [JettyContainer ] Jetty 7.2+ detected, CDI injection will be available in Listeners, Servlets and Filters.
2016-09-01 18:55:06.953:INFO:oejs.AbstractConnector:Started [email protected]:8080

Jetty startup finished in 5,9 s.
Used memory: 16,0 MB of 368,5 MB (1,8 GB maximum)
Console available: type “help”.

pom.xml:

4.0.0

<groupId>br.com.caelum</groupId>
<artifactId>vraptor-blank-project</artifactId>
<version>4.2.0-RC4-SNAPSHOT</version>
<packaging>war</packaging>

<description>A blank project to start using VRaptor 4</description>

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<weld.version>2.1.2.Final</weld.version>
</properties>

<dependencies>
	<dependency>
		<groupId>br.com.caelum</groupId>
		<artifactId>vraptor</artifactId>
		<version>4.2.0-RC3</version>
	</dependency>


	<dependency>
		<groupId>org.jboss.weld.servlet</groupId>
		<artifactId>weld-servlet-core</artifactId>
		<version>${weld.version}</version>
	</dependency>

	<dependency>
		<groupId>org.jboss.weld</groupId>
		<artifactId>weld-core-impl</artifactId>
		<version>${weld.version}</version>
	</dependency>

	<dependency>
		<groupId>javax.el</groupId>
		<artifactId>el-api</artifactId>
		<version>2.2</version>
		<scope>provided</scope>
	</dependency>

	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-validator-cdi</artifactId>
		<version>5.1.1.Final</version>
	</dependency>

	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>

	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>javax.servlet-api</artifactId>
		<version>3.1.0</version>
		<scope>provided</scope>
	</dependency>

	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>1.7.5</version>
	</dependency>

</dependencies>

<build>
	<finalName>vraptor-blank-project</finalName>
	<outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
	<plugins>



		<plugin>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-maven-plugin</artifactId>
			<version>9.3.7.v20160115</version>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.1</version>
			<configuration>
				<source>1.7</source>
				<target>1.7</target>
			</configuration>
		</plugin>

		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-war-plugin</artifactId>
			<version>2.4</version>
		</plugin>

		<plugin>
			<groupId>org.apache.tomcat.maven</groupId>
			<artifactId>tomcat7-maven-plugin</artifactId>
			<version>2.1</version>
		</plugin>

		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-deploy-plugin</artifactId>
			<version>2.8</version>
			<configuration>
				<skip>true</skip>
			</configuration>
		</plugin>

		<plugin>
			<artifactId>maven-eclipse-plugin</artifactId>
			<version>2.9</version>
			<configuration>
				<downloadSources>true</downloadSources>
				<downloadJavadocs>true</downloadJavadocs>
				<wtpversion>2.0</wtpversion>
				<ajdtVersion>none</ajdtVersion>
			</configuration>
		</plugin>

		<plugin>
			<artifactId>maven-antrun-plugin</artifactId>
			<version>1.7</version>
			<executions>
				<execution>
					<phase>prepare-package</phase>
					<configuration>
						<target>
							<copy file="${basedir}/pom-dist.xml" todir="${project.build.directory}" />
							<replace file="${project.build.directory}/pom-dist.xml"
								token="VRAPTOR_VERSION_HERE" value="${project.version}" />
						</target>
					</configuration>
					<goals>
						<goal>run</goal>
					</goals>
				</execution>
			</executions>
		</plugin>

		<plugin>
			<artifactId>maven-assembly-plugin</artifactId>
			<version>2.3</version>
			<executions>
				<execution>
					<id>distribution</id>
					<phase>package</phase>
					<configuration>
						<descriptors>
							<descriptor>assembly.xml</descriptor>
						</descriptors>
					</configuration>
					<goals>
						<goal>assembly</goal>
					</goals>
				</execution>
				<execution>
					<id>distribution-eclipse</id>
					<phase>package</phase>
					<configuration>
						<descriptors>
							<descriptor>assembly-eclipse.xml</descriptor>
						</descriptors>
					</configuration>
					<goals>
						<goal>assembly</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

jetty.xml:

-org.eclipse.jetty.servlet.ServletContextHandler.Decorator
F

jetty-web.xml:

<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="serverClasses">
        <Array type="java.lang.String">
            <Item>-org.eclipse.jetty.servlet.ServletContextHandler.Decorator</Item>
        </Array>
    </Set>
</Configure>
F

Projeto no github:

Projeto de exemplo no github

rodrigo.turini

@flavio5050 chegou a testar pra ver se é só com o jetty, ou se acontece o mesmo em qualquer servidor?

por exemplo, rodando com:

mvn tomcat7:run

funciona?

e se voc6e tentar com jetty na linha de comando?

mvn jetty:run

F

Mestre Rodrigo!

Conforme orientou, usando com o maven funcionou (mvn jetty:run)!

Só precisei colocar o plugin correto dentro do pom, veja:

<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
				<version>8.1.7.v20120910</version>
				<configuration>
					<webApp>
						<contextPath>/vraptor</contextPath>
					</webApp>
				</configuration>
			</plugin>

Também atualizei o projeto no github para quem precisar de um exemplo:

Todavia, agora como eu publico isso no servidor de produção?

rodrigo.turini

oi @flavio5050

que bom que resolveu! sobre o deploy, depende bastante de onde você quer fazer.

tem um post no blog mostrando como fazer no openshift, por exemplo.

F

O Deploy será em um servidor com jetty. Mas lá não tem maven por exemplo. Se eu gerar o war e colocar lá ele sobe?

[]´s

rodrigo.turini

Isso! É uma aplicação web normal, não tem nada de especial no deploy.

basta gerar o war e publicar no servidor (:

Criado 1 de setembro de 2016
Ultima resposta 2 de set. de 2016
Respostas 9
Participantes 2