[Resolvido] - JBoss 7.1 Application Server x Maven - Problemas com proxy

11 respostas
jamesfrj

Pessoal, estou tentando aprender a trabalhar com JBoss. Baixei ontem a versão JBoss AS 7.1, incorporei o plugin do JBoss Tools no Eclipse Indigo pelo Market Place.
Instalei o Maven 3.0.4 e testei pelo prompt Até então tudo certo...

O problema começa a acontecer quando tento utilizar um dos JBossQuickstarts, por exemplo o HelloWorld (fig1 anexa). No final do Wizard de criação do projeto o Maven começa a apresentar uma série de erros de dependências.

O primeiro erro é esse:
Project build error: Non-resolvable import POM: Failure to transfer org.jboss.spec:jboss-javaee-6.0:pom:3.0.0.Beta1 from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.jboss.spec:jboss-javaee-6.0:pom:3.0.0.Beta1 from/to central (http://repo1.maven.org/maven2): Access denied to http://repo1.maven.org/maven2/org/jboss/spec/jboss-javaee-6.0/3.0.0.Beta1/jboss-javaee-6.0-3.0.0.Beta1.pom. Error code 407, Proxy Authentication Required
Todas as dependências no arquivo pom.xml abaixo estão com erro:
<dependencyManagement>
      <dependencies>
         <!-- Define the version of JBoss' Java EE 6 APIs we want to use -->
         <!-- JBoss distributes a complete set of Java EE 6 APIs including
            a Bill of Materials (BOM). A BOM specifies the versions of a "stack" (or
            a collection) of artifacts. We use this here so that we always get the correct
            versions of artifacts. Here we use the jboss-javaee-6.0 stack (you can
            read this as the JBoss stack of the Java EE 6 APIs). You can actually
            use this stack with any version of JBoss AS that implements Java EE 6, not
            just JBoss AS 7! -->
         <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-6.0</artifactId>
            <version>3.0.0.Beta1</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <dependencies>

      <!-- Import the CDI API, we use provided scope as the API is included 
         in JBoss AS 7 -->
      <dependency>
         <groupId>javax.enterprise</groupId>
         <artifactId>cdi-api</artifactId>
         <scope>provided</scope>
      </dependency>

      <!-- Import the Common Annotations API (JSR-250), we use provided scope 
         as the API is included in JBoss AS 7 -->
      <dependency>
         <groupId>org.jboss.spec.javax.annotation</groupId>
         <artifactId>jboss-annotations-api_1.1_spec</artifactId>
         <scope>provided</scope>
      </dependency>

      <!-- Import the Servlet API, we use provided scope as the API is included 
         in JBoss AS 7 -->
      <dependency>
         <groupId>org.jboss.spec.javax.servlet</groupId>
         <artifactId>jboss-servlet-api_3.0_spec</artifactId>
         <scope>provided</scope>
      </dependency>

   </dependencies>

Eu adicionei dados do meu proxy nos dois arquivos settings.xml do Maven, mas agora não sei como fazer para o Maven tentar baixar de novo as dependências.

Alguém sabe como resolvo isso?

11 Respostas

maior_abandonado

não sei se isso vai te ajudar, mas no eclipse, clique com o direito no seu projeto e vá em Maven - Update Dependencies…

Acho que deva ser necessário você configurar seu proxy no eclipse, vai no menu window - preferences, na janela que abre vai em general - network connections, la você coloca as configurações do seu proxy.

jamesfrj

Obrigado pela sua resposta!

No Eclipse eu já tinha configurado o proxy no eclipse, já testei e está ok. Consegui baixar o JBoss Tools pelo Eclipse mesmo.

Vou testar o que você falou sobre o Maven - Update Dependencies… e depois posto aqui o resultado.

tectuba

Ola amigo,

Esse erro de build esta ocorrendo quando vc realiza a construção (maven) via eclipse ou via console? Recomendo que utilize o console. Quando você instala o plugin do m2e ele instala um
maven junto ao eclipse e isso faz com que muitas vezes ele não utilize as configurações do seu ambiente real. Va nas configurações do seu eclipse e certifique-se que ele esta usando o maven
instalado por VOCÊ. Tambem verifique se o repositório do jboss esta adicionado ao seu POM corretamente. Pois não basta somente a dependência, você necessita apontar para o repositório oficial de preferencia.
PS: Troque o scope de dependência para PROVIDED ao invez de IMPORT

Repositorio Jboss Maven : https://community.jboss.org/wiki/MavenGettingStarted-Users

jamesfrj

Fala brother, tectuba! Valeu pela dica do Maven! Eu alterei aqui no Eclipse conforme você falou para que ele use o MEU Maven ao invés do embedded em Window -> Preferences -> Maven -> Instalations. (Espero ser esse o caminho mesmo)

Desculpe, mas sei muito pouco sobre o Maven, por isso perdoe a ignorância, mas onde configuro este repositório oficial de preferencia no Eclipse? Onde troco o scope de dependência para PROVIDED ao invéz de IMPORT no Eclipse?

tectuba

Opa,

Não esquenta cara, eu tambem sofri muito com o Maven no começo.
Pense que agora você sempre ira configurar o Maven atravez do POM.xml e não mais pelo eclipse. Quando você declara uma dependencia como foi feito em:


javax.enterprise
cdi-api
provided

Você tem uma TAG de scope, sempre utilize provided quando a dependencia será provida pelo container (servidor), compile quando foi empacotada junto ao projeto e test quando foi utilizada somente para teste.
Segue material para leitura:
http://docs.codehaus.org/display/MAVENUSER/Dependency+Scopes

O repositorio oficial não precisa ser declarado no POM.xml, pois o mesmo supõe que ele existe. Navegue pelo terminal até a pasta do seu projeto (a qual possui o arquivo POM.xml) e apos isso
use o comando mvn clean install e coloque aqui o resultado.
PS: Não utilize o eclipse nesse momento.

jamesfrj

Fala tectuba!

Obrigado, pelo link. Informação bastante útil.

Aqui vai a saída do comando mvn clean install

.\JBossProjects\helloworld\jboss-as-helloworld>mvn clean install [INFO] Scanning for projects... Downloading: http://repo.maven.apache.org/maven2/org/jboss/spec/jboss-javaee-6.0/3.0.0.Beta1/jboss-javaee-6.0-3.0.0.Beta1.pom [ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project org.jboss.as.quickstarts:jboss-as-helloworld:7.1.1-SNAPSHOT (.\JBossProjects\helloworld\jboss-as-helloworld\pom.xml) has 4 errors [ERROR] Non-resolvable import POM: Could not transfer artifact org.jboss.spec:jboss-javaee-6.0:pom:3.0.0.Beta1 from/to central (http://repo.maven.apache.org/maven2): Not authorized by proxy, ReasonPhrase:Proxy Authentication Required. @ line 39, column 22 -> [Help 2] [ERROR] 'dependencies.dependency.version' for javax.enterprise:cdi-api:jar is missing. @ line 53, column 19 [ERROR] 'dependencies.dependency.version' for org.jboss.spec.javax.annotation:jboss-annotations-api_1.1_spec:jar is missing. @ line 61, column 19 [ERROR] 'dependencies.dependency.version' for org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec:jar is missing. @ line 69, column 19 [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
O que você acha?

tectuba

Ola amigo,

Então, é um problema de proxy sim. O local que você esta tentando acessar deve utilizar um proxy:

[ERROR] Non-resolvable import POM: Could not transfer artifact org.jboss.spec:jboss-javaee-6.0:pom:3.0.0.Beta1 from/to central (http://repo.maven.apache.org/maven2): Not authorized by proxy, ReasonPhrase:Proxy Authentication Required. @ line 39, column 22 -> [Help 2]

Verifique sua rede e as configurações de proxy, apos isso siga essas instruções:

http://maven.apache.org/guides/mini/guide-proxies.html

Att

jamesfrj
Configurei conforme http://maven.apache.org/guides/mini/guide-proxies.html. Meu arquivo ficou assim:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <profiles>
    
  </profiles>
  <activeProfiles>
    
  </activeProfiles>

<proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |-->
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>nome_do_host</host>
      <port>8080</port>
      <username>usuario</username>
      <password>senha</password>
      <nonProxyHosts></nonProxyHosts>
    </proxy>
</proxies>

</settings>
Mesmo assim deu o mesmo erro que mostrei acima. Sabe dizer o que faltou eu fazer?
tectuba

Ola amigo,

Cara andei dando uma olhada em alguns materias e provavelmente é alguma configuração incorreta no settings do proxy.
Você tem certeza que as informações setadas sobre o proxy estão corretas?
Você esta utilizando o mvn install para rodar o build?

Mais materias sobre proxy
http://www.mkyong.com/maven/how-to-enable-proxy-setting-in-maven/

jamesfrj

Fala, amigo!

Consegui resolver! O problema é que minha configuração estava usando o proxy errado aqui da empresa onde trabalho. Agora, tá funcionando redondo! Tanto pela linha de comando, como pela IDE do Eclipse.

Muito obrigado pelo seu retorno!

Abraço

tectuba

Blz abraço e boa sorte.

Criado 23 de novembro de 2012
Ultima resposta 30 de nov. de 2012
Respostas 11
Participantes 3