1

I am having a similar problem to what was described here, but without the same (successful) resolution:

How can I get Restlet via Maven when I am behind a proxy?

Basically, in IntelliJ, I create a new Maven project using the archetype:

camel-archetype-spring-boot

I can successfully run the little sample program (MySpringBootApplication).

But once I add a Camel Restlet dependency to the POM:

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-restlet-starter</artifactId>
</dependency>

Compilation immediately fails with:

[...]
    Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: Could not transfer artifact org.restlet.jee:org.restlet:pom:2.3.12 from/to maven-restlet (http://maven.restlet.org): Access denied to: http://maven.restlet.org/org/restlet/jee/org.restlet/2.3.12/org.restlet-2.3.12.pom , ReasonPhrase:InvalidBrowser.
        at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538)
        at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216)
        at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:281)
        ... 30 more
    Caused by: org.sonatype.aether.transfer.ArtifactTransferException: Could not transfer artifact org.restlet.jee:org.restlet:pom:2.3.12 from/to maven-restlet (http://maven.restlet.org): Access denied to: http://maven.restlet.org/org/restlet/jee/org.restlet/2.3.12/org.restlet-2.3.12.pom , ReasonPhrase:InvalidBrowser.
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:951)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:939)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:669)
        at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    Caused by: org.apache.maven.wagon.authorization.AuthorizationException: Access denied to: http://maven.restlet.org/org/restlet/jee/org.restlet/2.3.12/org.restlet-2.3.12.pom , ReasonPhrase:InvalidBrowser.
        at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:928)
        at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116)
        at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88)
        at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:601)
        ... 4 more

I tried using a couple of suggestions I found on Stack Overflow, one involving adding a <repositories> to my pom.xml and one involving adding a <mirror> in settings.xml. Neither solved the Access Denied problem.

I didn't try a <server> (in settings.xml) suggestion I found, mainly because I didn't know what that entry should be. But I suspect I really shouldn't need to add special credentials for just this one dependency... right?

Thanks for any help!

FWIW, here is my pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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>camel</groupId>
  <artifactId>restlet</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>

  <name>A Camel Spring Boot Route</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring.boot-version>1.5.12.RELEASE</spring.boot-version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Spring Boot BOM -->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring.boot-version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!-- Camel BOM -->
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring-boot-dependencies</artifactId>
        <version>2.21.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>

    <!-- Spring Boot -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <!-- Camel -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-stream-starter</artifactId>
    </dependency>

    <!-- XXX: I added this -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-restlet-starter</artifactId>
    </dependency>

    <!-- Test -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-test-spring</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>${spring.boot-version}</version>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

UPDATE

Out of curiosity, after verifying that with my browser I could actually access org.restlet-2.3.12.pom (I just can't access it with Maven), I wanted to see what would happen if I removed the camel-restlet-starter dependency and instead try specifying a dependency on the "offending" dependency reported in the compilation error:

<dependency>
  <groupId>org.restlet.jee</groupId>
  <artifactId>org.restlet</artifactId>
</dependency>

When I did that, I now get the compilation error:

Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact org.restlet.jee:org.restlet:jar:2.3.12 in central (https://repo.maven.apache.org/maven2)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:947)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:939)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:669)
        at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

And indeed, the artifact is not found in that repo.

Digging into that a little more eventually led me to the following open bug report - which makes me think that maybe this really is a bug?

Camel contains references to artifacts not in Maven Central

https://issues.jboss.org/browse/ENTESB-7378

and

Adding camel-restlet dependency to pom.xml results in missing libraries

https://issues.jboss.org/browse/OSFUSE-672

Ron C.
  • 15
  • 3

0 Answers0