Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Fazendo deploy com .war no meu cliente

Supondo que eu já tenho um servidor tomcat instalado no meu cliente e eu quero colocar essa aplicação la. Com eu faço? Já criei um .war mas não consigo acessar a pasta /vips por exemplo no servidor da erro 404. Usei um tomcat local aqui que está funcionando corretamente, normalmente eu largo o .war no webapps e só acessar. Existe mais alguma configuração necessária para essa tarefa? acho interessante rodar na linha de comando la pro meu cliente porem se o kra já tem um container instalado ele não vai querer rodar em outra maquina ou em outra porta e sim que eu coloque minha aplicação no servidor dele.

5 respostas

Olá Cesar, você pode configurar o maven para fazer o build de um .war para você, para isso dentro do pom.xml você deve mudar de jar para war, depois é só usar o comando

mvn clean package

Com isso o pacote .war será gerado e você pode jogar no webapps :)

Então Pedro, eu fiz isso.. Consegui gerar o arquivo .war, coloquei ele no Webapss do meu apache. O apache gerou a pasta com o nome do projeto, mas a hora que eu tento acessar ele da erro 404. Primeiro eu tive um erro por que não tinha o web.xml:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project vips: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

Ai eu fiz uma busca e encontrei um plugging para sanar o problema:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
  </configuration>
</plugin>

Só que esse plugin só faz passar pelo erro aparentemente. Ai ele gera o .war Mas na hora de colocar ele la no servidor e acessar recebo o 404.

A minha duvida é, preciso criar um arquivo WEB-INF/web.xml para conseguir fazer o deploy de um arquivo .war no tomcat?

Qual configuração basica pra eu acessar a minha app seria necessária nesse web.xml?

*Tambem coloquei o scope do tomcat como provide

obrigado

Oi Carlos.

Seguindo a documentação oficial do Spring, (https://spring.io/guides/gs/convert-jar-to-war/ e aqui também http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging) ele indica que vc tem que colocar o packing para war

<packaging>war</packaging>

E o starter do Tomcat para provider

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
</dependency>

Foi essas alterações que vc fez?

Vc falou q no tomcat local ele funcionou mas no tomcat em outra maquina não: não será o caso do seu tomcat lá está bloqueando essa aplicação? Já viu o log de erro do tomcat para ver o erro q está apresentando?

solução!

Já aqui nessa parte da documentação, pede para sua classe de configuração extender a classe SpringBootServletInitializer e fazer aquele configuração que falei no post anterior.

Segue o link da parte da documentação que fala isso:

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

Bom dia.. então isso mesmo, eu tinha lido essa documentação e depois gerei um projeto novo no http://start.spring.io/ pedindo de cara pra gerar um WAR ai ele me mandou um projeto configurado com a classe configure sobrescrita..:

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(TesteApplication.class);
    }

}

Já estou conseguindo o deploy com o war

vlw

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software