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