Spring boot CLI settings proxy - spring

I installed Spring boot CLI on Windows 7 but, I use a proxy. I would like to know how to configure proxy with Spring boot. I set the variable JAVA_OPTS with -Dhttp.proxyHost=proxyhostURL and
-Dhttp.proxyPort=proxyPortNumber but I have received the message :
"startup failed : General error during connection ..." after the command "spring run myscript.groovy".
I use jdk 1.7.0_51 and spring boot 1.0.0RC3.
Thanks in advance !

It looks like a known bug and there's a fix on github
Not sure if it's released yet tho...

Related

Spring Boot 2.7.8 or 3.x upgrade - Tomcat HTTP Status 404 - Not Found on Azure

I'm currently upgrading an application from Spring Boot 2.7.7 to Spring Boot 3.0.2 and hit a 404 at the tomcat.
The interesting thing is that the application works fine on my local machine, but not in the Azure Cloud.
I have the log-level set to DEBUG for org.springframework.web and with Spring Boot 2.7.7 I see the call received in the logs (on Azure) for actuator/info, whereas in Spring Boot 3 I see the application starting successfully but then no further logs.
Any ideas what it could be or what I can try out to debug further?
The problem is related to a change in Tomcat version in Spring 2.7.8 (and therefore also Spring Boot 3.x) in relation to the Java-Agent used in Docker / within Azure.
Update to the latest java-agent version in the Docker-Image:
DockerFile
FROM eclipse-temurin:17
COPY "myBuiltApplication.jar" "app.jar"
ADD "https://github.com/microsoft/ApplicationInsights-Java/releases/download/**3.4.8**/applicationinsights-agent-*3.4.8*.jar" "agent.jar"
EXPOSE 80
ENTRYPOINT [ "java", "-javaagent:agent.jar", "-jar", "app.jar"]
Make sure that no other agent is active from Azure
I had to remove the JAVA_TOOL_OPTIONS and StartupBootstrapper from the docker run:
- docker run -d --expose=80 --name myapp
JAVA_TOOL_OPTIONS=-javaagent:/agents/java/applicationinsights-agent-codeless.jar -e StartupBootstrapper=Microsoft.ApplicationInsights.StartupBootstrapper -e
I experienced the same issue with Spring Boot version 2.7.8 with the exact same behavior: Starting the app local in IDE as well as starting the docker image locally worked perfect. When running this image in Azure as an App Service no http call is going to spring. For me it looks like Tomcat has an issue as the 404 seems to be produced by Tomcat.
Downgrading to Spring Boot 2.7.7 fixed the issue again.

Keycloak 18 +Spring boot

I want to use Keycloak 18 with my Spring boot 2.7.2 version. I can run & config Keycloak in a docker container (bitnami/keycloak:18), and finally I've got token by Postman. And then I tried to configure Spring boot by https://www.baeldung.com/spring-boot-keycloak . When I start SB I've got an error:
Failed to load URLs from http://localhost:48080/auth/realms/XXX/.well-known/openid-configuration
java.lang.Exception: Not Found
where XXX is an existing realm.
I think so something is changed in Keycloak 18.
Has somebody a working example with Spring boot & keycloak?
thx
Zamek
Finally I found it:
In application.properties I used
keycloak.auth-server-url=http://localhost:48080/auth
but it needs
keycloak.auth-server-url=http://localhost:48080

Intellij, Spring dev tools remote, Docker, error Unexpected 404 response uploading class files

Im trying to use Spring Boot Dev tools (Spring Remote), and automatically upload recompiled files to my docker container.
I keep receiving
Unexpected 404 response uploading class files
This is my docker file:
FROM java:8
WORKDIR /first
ADD ./build/libs/first.jar /first/first.jar
EXPOSE 8080
RUN bash -c 'touch /first/first.jar'
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-jar", "first.jar"]
This is my configuration and the configuration
And this is the error I'm receiving:
As of Spring Boot 1.5.0, devtools defaults were changed to exclude the devtools from fat jars.
If you want to include them, you have to set the excludeDevtools flag to false.
However, the devtools documentation doesn't explain how to do this. The necessary documentation is actually in the spring-boot-gradle-plugin documentation.
To do it, you can put this snippet of code in your build.gradle file:
bootRepackage {
excludeDevtools = false
}
Unfortunately, this was buggy at first and had no effect as of Spring Boot 1.5.0. The workaround was to do this instead:
springBoot {
excludeDevtools = false
}
However, I have verified that the bootRepackage approach works for Spring Boot 1.5.8 .
I got the same issues as yours while using docker-compose to compose my application ( a web service + redis server + mongo server ).
As the Spring developer tools document point out "Developer tools are automatically disabled when running a fully packaged application. If your application is launched using java -jar or if it’s started using a special classloader, then it is considered a “production application”."
I think when we running Spring Web Application inside Docker container, the developer tool is disabled then we cant remotely restart it.
Currently, I'm running my web application on the host machine and set the redis server, mongo server inside containers so I can restart the web app quickly when the code is changing in development process.
In my case I had to put the application context on the argument of the IDE RemoteSpringApplication configuration.
For example, my application root context was /virtue so I had to configure it like so:

spring boot takes like forever to start up in Openshift

I'm running a spring boot 1.4.3 app in openshift origin 1.3.
It takes more than 20 minutes to bring spring bootup.
the docker base container I'm using is alpine:3.4 with opendk8-jre.
the spring boot embedded container is using default tomcat one. I've installed the haveged and set -Djava.security.egd=file:/dev/./urandom
but if I run the image itself with docker run(I'm not using openshift), it can start up..
any idea why ?
Could it be the case that you don't have a maven proxy setup and are downloading all dependencies?
If it's the case your logs likely show that you are donwloading the same deps over and over.
run this command to see the logs:
oc logs _POD_NAME_
Also, have you tried the same in OpenShift Dev Preview and got similar results?

Making spring boot boostrap behind proxy

I tried to use Spring Boot using proxy.
I get the following message
$ spring init -l
Failed to retrieve help from service at 'https://start.spring.io'
(start.spring.io: unknown error)
I tried following
export http_proxy
export https_proxy
JAVA_OPTS settings
We are using commons HttpClient and we build a default instance via HttpClientBuilder
There are a bunch of system properties that are taken into account but I assume the following is the ones you're looking for:
http.proxyHost
http.proxyPort
Can you try that? If that does not work, please raise an issue on the boot tracker
Behind corporate proxy using locally installed cntlm proxy:
JAVA_OPTS
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128
Output:
$ spring init
Using service at https://start.spring.io
Content saved to 'demo.zip'
Use
-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080

Resources