Heroku + VRaptor

Tenho uma aplicacao com VRaptor e estou tentando subir no Heroku.

pom.xml (plugins)

<plugins>
      <!-- Heroku plugin -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <version>1.1.1</version>
        <configuration>
          <assembleDirectory>target</assembleDirectory>
          <programs>
            <program>
              <mainClass>br.com.metrica.infrastructure.heroku.TomcatLaucher</mainClass>
              <name>metrica</name>
            </program>
          </programs>
        </configuration>
        <executions>
		  <execution>
		    <phase>package</phase>
		    <goals>
		      <goal>assemble</goal>
		    </goals>
		  </execution>
		</executions>
      </plugin>
      <!-- End Heroku plugin -->
      <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-eclipse-plugin</artifactId>
		<version>2.7</version>
		<configuration>
		  <ajdtVersion>none</ajdtVersion>
		  <buildOutputDirectory>target/portal/WEB-INF/classes</buildOutputDirectory>
		  <downloadSources>true</downloadSources>
		  <wtpversion>2.0</wtpversion>
		  <encoding>UTF-8</encoding>
		</configuration>
	  </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
		<version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-resources-plugin</artifactId>
		<configuration>
	  	  <encoding>UTF-8</encoding>
		</configuration>
      </plugin>
    </plugins>

E quando executo o comando para dar start no servidor:

sh target/bin/webapp
Exception in thread "main" java.lang.NoClassDefFoundError: br/com/metrica/infrastructure/heroku/TomcatLaucher
Caused by: java.lang.ClassNotFoundException: br.com.metrica.infrastructure.heroku.TomcatLaucher
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

O que estou fazendo errado?

Os .class estao sendo gerados dentro da pasta target/classes

Eu consegui rodar o sh quando eu entro na pasta /target/classes.

Como eu faco para conseguir rodar o sh estando na raiz do meu projeto?

As URLs geradas pelo linkTo ficaram zuadas depois que subiu no tomcat embedded.

O que pode ser?

<form id="form" action="//car/filter" method="POST">

isso não funciona? ou modificar o sh pra fazer um cd pra pasta que vc precisa?

enfim, o tomcat embedded deve retornar o context-path como '/'... o comportamento padrão é retornar '' qdo não tem contexto...

em todo caso os links vão funcionar mesmo se começar com //, o browser interpreta como a raiz do domínio (se eu não estou enganado)

isso não funciona? ou modificar o sh pra fazer um cd pra pasta que vc precisa?

enfim, o tomcat embedded deve retornar o context-path como ‘/’… o comportamento padrão é retornar ‘’ qdo não tem contexto…

em todo caso os links vão funcionar mesmo se começar com //, o browser interpreta como a raiz do domínio (se eu não estou enganado)

[quote=Lucas Cavalcanti]cd target/classes; sh xxxx

isso não funciona? ou modificar o sh pra fazer um cd pra pasta que vc precisa?

enfim, o tomcat embedded deve retornar o context-path como ‘/’… o comportamento padrão é retornar ‘’ qdo não tem contexto…

em todo caso os links vão funcionar mesmo se começar com //, o browser interpreta como a raiz do domínio (se eu não estou enganado)[/quote]

Eh que no tutorial do Heroku ele nao cita nenhuma obrigatoriedade de dar o cd target/classes antes de executar o comando.

Queria saber se nao estou fazendo algo errado para isto estar acontecendo…

nunca fiz esse deploy pro heroku, então não posso te ajudar muito =/