Connecting to Oracle database using spring - java

I'm trying to connect to a Oracle database for a Maven webapp with spring.
This is in my pom.xml regarding oracle
<dependencies>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ucp</artifactId>
<version>12.1.0.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>maven.oracle.com</id>
<name>oracle-maven-repo</name>
<url>https://maven.oracle.com</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.oracle.com</id>
<name>oracle-maven-repo</name>
<url>https://maven.oracle.com</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
accourding to this blog post:https://blogs.oracle.com/dev2dev/entry/how_to_get_oracle_jdbc
I keep getting this error in Maven:
[ERROR] Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:mav
en-install-plugin:jar:2.4: Could not transfer artifact org.apache.maven.plugins:maven-install-plugin:pom:2.4 from/to maven.oracle.com (https://maven.oracle.com): proxy.mycompany.com:
Unknown host proxy.mycompany.com
In my settings.xml i have 2 lines of code and i can't find any info about them.
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.mycompany.com</host>
<nonProxyHosts>mycompany.com</nonProxyHosts>
</proxy>
What am I supposed to type in host and nonProxyHosts to finally make a connection with my database?

Related

Maven HTTPS migration throwing 501

There is a private artifact being imported to a maven project. The artifact is being stored in a folder named repository. Was using f/w snippet to import the dependency
<repositories>
<repository>
<id>local-repo</id>
<url>file://${basedir}/repository</url>
</repository>
</repositories>
The project was last built on December, 2019 using Apache Maven 3.3.9. Now the build is throwing following error:
[ERROR] Failed to execute goal on project target-jar: Could not resolve dependencies for project a.package:target-jar:jar:0.0.1-SNAPSHOT:
Failed to collect dependencies at private.package:private-artifact:jar:1.1.1:
Failed to read artifact descriptor for private.package:private-artifact:jar:1.1.1:
Could not transfer artifact private.package:private-artifact:pom:1.1.1 from/to central-backup (http://repo.maven.apache.org/maven2):
Failed to transfer file: http://repo.maven.apache.org/maven2/private/package/private-artifact/1.1.1/private.package:private-artifact-1.1.1.pom. Return code is: 501 , ReasonPhrase:HTTPS Required. -> [Help 1]
Tried f/w solution but no luck.
New repo info in pom.xml:
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>local-repo</id>
<url>file://${basedir}/repository</url>
</repository>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

Maven project with local file dependency build error 501

I've got maven project with local dependencies, which doesn't compile because this 'improvement', introduced by maven:
Effective January 15, 2020, The Central Repository no longer supports
insecure communication over plain HTTP and requires that all requests
to the repository are encrypted over HTTPS.
Here is my pom.xml:
...
<repositories>
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${project.basedir}/libs</url>
</repository>
</repositories>
...
So now I'm receiving the following compile error:
Could not resolve dependencies for project ........:war:1.0: Failed to
collect dependencies for [.........:jar:1.0 (compile),
javax:javaee-web-api:jar:7.0 (provided), .........:jar:1.0
(compile)]: Failed to read artifact descriptor for
.........:jar:1.0: Could not transfer artifact
.........:pom:1.0 from/to central
(http://repo.maven.apache.org/maven2): Failed to transfer file:
http://repo.maven.apache.org/maven2/com/..../..../1.0/.....-1.0.pom.
Return code is: 501 , ReasonPhrase:HTTPS Required. -> [Help 1]
As you can see I'm using local jar file, but this doesn't compile anymore
Does anyone have idea how to configure local repository for successful compilation?
The Maven server do not support HTTP anymore. You must configure the maven repositories with HTTPS url's in your local maven configuration file, in your home folder yourname/.m2/settings.xml.
Here is an example that you may copy:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<profile>
<id>artifactory</id>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>plugins-release</name>
<url>https://repo1.maven.org/maven2/</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>https://repo1.maven.org/maven2/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>

repositories vs pluginRepositories in maven settings.xml

I have the below settings.xml file in my ~/.m2/ folder:
<settings>
<profiles>
<profile>
<id>my-repositories</id>
<repositories>
<repository>
<id>thirdparty-repository</id>
<name>Thirdparty repository</name>
<url>https://mynexus/repository/thirdparty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>thirdparty-plugin-repository</id>
<name>Thirdparty plugin repository</name>
<url>https://mynexus/repository/thirdparty/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>my-repositories</activeProfile>
</activeProfiles>
</settings>
For both repositories the same nexus group repository is used:
https://mynexus/repository/thirdparty/
If I remove the first one: thirdparty-repository I get the below error:
Failed to read artifact descriptor for junit:junit:jar:4.8.2: Could not transfer artifact junit:junit:pom:4.8.2 from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Now If I re-enable it and instead remove the other one: thirdparty-plugin-repository I now get this error:
Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Only when I have them both enabled at the same time it works.
Why do I need both repositories and pluginRepositories that points to the same nexus repository?
Suppose that you had defined a plugin with some dependencies. These dependencies will be searched in all of your <pluginRepository> definitions. Something like this:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>io.herd.common</groupId>
<artifactId>common-herd</artifactId>
<version>${common.version}</version>
</dependency>
</dependencies>
</plugin>
Even if you have a <repository> defined which contains the common-herd artifact, Maven will not downloaded it unless you also have a <pluginRepository> containing it. And of course, the common-herd artifact can not be present inside the Maven Central Repository.
I had this problem a few months ago and Maven only downloaded the specific plugin dependency after I added a <pluginRepository>
I had a pb like this, idk if it will help but with this code in my POM.xml my nexus pb were resolved
<distributionManagement>
<repository>
<id>nexus</id>
<name>releases</name>
<url>https://mynexus/repository/thirdparty/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>Snapshots</name>
<url>https://mynexus/repository/thirdparty/</url>
</snapshotRepository>
</distributionManagement>
and
<!-- download artifacts from this repo -->
<repositories>
<repository>
<id>nexus</id>
<name>Public</name>
<url>https://mynexus/repository/thirdparty/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
hope it helped
In Nexus there is defined a public group which should contain all needed repositories and there should no need to configure this in your own pom nor in the settings.xml file. Only the public group of Nexus should be configured
The only thing you need is to change the url in mirror with your own location...
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>

Missing repository in POM file

I have a POM file
<repositories>
<repository>
<id>bedatadriven</id>
<name>bedatadriven public repo</name>
<url>https://nexus.bedatadriven.com/content/groups/public/</url>
</repository>
<repository>
<id>cloudera.repo</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
<name>Cloudera Repositories</name>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>vroc</id>
<url>http://repo.vroc.ai:8081/repository/maven-vroc/</url>
<name>VROC Repo</name>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>vroc</id>
<name>Releases</name>
<url>http://repo.vroc.ai:8081/repository/maven-vroc/</url>
</repository>
<snapshotRepository>
<id>vroc</id>
<name>Snapshot</name>
<url>http://repo.vroc.ai:8081/repository/maven-vroc/</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.renjin</groupId>
<artifactId>renjin-script-engine</artifactId>
<version>0.8.2527</version>
</dependency>
....
when I run my project it gives below exception. I am not sure how to resolve it
[ERROR] Failed to execute goal on project mdm: Could not resolve dependencies for project ai.vroc:mdm:jar:2.0.0-SNAPSHOT: Could not find artifact org.renjin:renjin-script-engine:jar:0.8.2527 in vroc (http://repo.vroc.ai:8081/repository/maven-public/) -> [Help 1]
[ERROR]
The dependency which gives error is in "bedatadriven" repository but it can not find it. I am not sure how to resolve this error.
You need to change this to be a version in your maven repo
<version>0.8.2527</version>
You will need to browse through http://repo.vroc.ai:8081/repository/maven-public yourself since this is not public (at least to me)
Go to org > renjin > renjin-script-engine, then see what versions are there if any

Maven doesn't find last version of a dependency [duplicate]

This question already has answers here:
How to add local jar files to a Maven project?
(36 answers)
Closed 7 years ago.
I have to include fixedformat4j-root dependency in my pom.xml.
I get artifact info (group, version, ...) from the pom.xml of the project homepage:
https://github.com/jeyben/fixedformat4j/blob/master/pom.xml
When I store that info to my pom.xml, I got this error from m2e eclipse plugin:
Missing artifact
com.ancientprogramming.fixedformat4j:fixedformat4j-root:jar:1.4.0-SNAPSHOT
This is my pom.xml
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
...
<dependencies>
...
<dependency>
<groupId>com.ancientprogramming.fixedformat4j</groupId>
<artifactId>fixedformat4j-root</artifactId>
<version>1.4.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray</id>
<url>http://jcenter.bintray.com</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</pluginRepository>
</pluginRepositories>
<build>
...
</build>
<reporting>
...
</reporting>
</project>
How can I solve this error? Should I set a new repository? Where can I find the repository url from the project pom.xml?
Neither of the repositories you've listed in your POM contain that version of that artifact. They each contain several release versions, but no snapshots.
Looking at the source for this artifact it does appear to be at version 1.4.0-SNAPSHOT but that version has not been deployed to a repository. Either build it yourself locally (via mvn clean install) or reference one of the versions in the given repositories.

Categories

Resources