I am new to Spring Cloud Task. I am trying to setup the Hello World Sample application. It runs and everything seems fine as per the example here.
However i see below output. I see some slf4j warnings. However my understanding is spring boot should provide default setup. Any reason why i see different log file?
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.9.RELEASE)
Hello World!
My application.properties already have this.
logging.level.org.springframework.cloud.task=DEBUG
spring.application.name=demo
EDIT
When I have added spring batch starter to my pom the logs started displaying fine and the slf4j warning are gone. I guess slf4j configuration is missing if we only have spring cloud task. Is there any specific reason it is configured like that specific for spring cloud task ?
Based on the SLF4J documentation (https://www.slf4j.org/codes.html#StaticLoggerBinder), that error is due to the fact that you haven't added a logging impl. You can address this by adding the Spring Boot Starter for logging or add your own logging dependencies.
Related
I have read several articles on this and I am able to make this work just fine on my Macbook machine running same version of IntelliJ and Spring Boot.
However, on Windows 10, the custom banner is not showing.
Windows 10
IntelliJ 2022.2.1 Ultimate Edition
spring-boot-starter-parent 2.7.6
What did I do so far?
Created banner.txt in C:\Dev\intelliJUltimateDev\myapi\src\main\resources\banner.txt
Added plain text "MY API" to banner.txt file
Run spring boot application
I would expect MY API custom banner to show in the console when I run spring boot app, but instead all I see is default Springboot banner. On my macbook machine, this is all I needed to do to get it working.
I also tried adding a gif image and the setting below:
spring.output.ansi.enabled=always
spring.main.banner-mode=console
spring.banner.location=classpath:banner.txt
spring.banner.image.location=classpath:banner.gif
spring.banner.image.height=200
spring.banner.image.width=200
, but none of this changes anything. Still, all I see is juse default Springboot banner:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.6)
If it is a Maven project, check if filtering is enabled in pom.xml:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>*.properties</include>
<include>*.xml</include>
</includes>
</resource>
</resources>
You can add *.txt the same way the other file types in the example are:
<include>*.txt</include>
<console>:14: error: not found: value spark
import spark.implicits._
^
<console>:14: error: not found: value spark
import spark.sql
^
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.2.0
/_/
Using Scala version 2.12.15 (Java HotSpot(TM) 64-Bit Server VM, Java 17.0.2)
Type in expressions to have them evaluated.
Type :help for more information.
I'm having an py4javaerror when I try to run a code in jupyter notebook. The error lines mostly shows something to do with spark. I thought maybe the error is the spark, I'm getting this error when I run spark. how to solve it ? Most commands to solve it are in linux machine. Can someone tell me how to solve it in a windows machine? If this isnt the issue what else would it be ?
the py4javaerror is
Py4JJavaError: An error occurred while calling o118.collectToPython.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 1.0 failed 1 times, most recent failure: Lost task 2.0 in stage 1.0 (TID 10) (AQKT255-5420.AQ.Local executor driver): java.net.SocketException: Connection reset
I have a Quarkus application and I'd like to display the application version as the Git commit SHA1, how do I do that?
The buildnumber-maven-plugin provides information about the current Git commit for the application as a maven property.
Make sure your pom.xml has it included and the src/main/resources/application.properties file is filtered by Maven, like the following:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Add the following to your src/main/resources/application.properties:
quarkus.application.version=${buildNumber}
The buildNumber property will be resolved and replaced during the maven build. The quarkus.application.version is a build-time property resolved during the Quarkus build (performed by the quarkus-maven-plugin).
If all steps were performed correctly, you should see an output as the following when running the application:
__ ____ __ _____ ___ __ ____ ______
--/ __ \/ / / / _ | / _ \/ //_/ / / / __/
-/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2021-07-22 11:35:44,283 INFO [org.fly.cor.int.lic.VersionPrinter] (main) Flyway Community Edition 7.11.2 by Redgate
2021-07-22 11:35:44,284 INFO [org.fly.cor.int.dat.bas.BaseDatabaseType] (main) Database: jdbc:postgresql://localhost:5432/postgres (PostgreSQL 12.7)
2021-07-22 11:35:44,321 INFO [org.fly.cor.int.com.DbMigrate] (main) Current version of schema "public": 3
2021-07-22 11:35:44,322 INFO [org.fly.cor.int.com.DbMigrate] (main) Schema "public" is up to date. No migration necessary.
2021-07-22 11:35:45,080 INFO [io.quarkus] (main) quarkus-registry afd82c886d3d6fa60d1f29df642bf6565135ccef on JVM (powered by Quarkus 2.1.0.Final) started in 2.327s. Listening on: http://0.0.0.0:8080
HINT: you can resize the commit SHA by adding the maven.buildNumber.shortRevisionLength Maven property to your pom.xml:
<maven.buildNumber.shortRevisionLength>7</maven.buildNumber.shortRevisionLength>
I want to install org.postgresql/postgresql/9.4-1201-jdbc41 in Karaf but I get errors. How can I resolve these errors? Strangely on Windows my Karaf doesn't have errors with this Postgres jdbc but on Ubuntu it has these errors. Any clues appreciated.
Install Kar feature social_importer.kar/1.0-SNAPSHOT
java.lang.Exception: Could not start bundle
mvn:org.postgresql/postgresql/9.4-1201-jdbc41 in feature(s)
T: Unresolved constraint in bundle org.postgresql.jdbc41
[127]: Unable to resolve 127.0: missing requirement [127.0]
osgi.wiring.package; (osgi.wiring.package=javax.transaction.xa)
Caused by: org.osgi.framework.BundleException:
Unresolved constraint in bundle org.postgresql.jdbc41 [127]: Unable
to resolve 127.0: missing requirement [127.0] osgi.wiring.package;
(osgi.wiring.package=javax.transaction.xa)
This might be related Apache Felix not able to access Postgres JDBC
karaf#root()> install -s wrap:mvn:postgresql/postgresql/9.4-1201-jdbc41
Bundle IDs:
Error executing command: Error installing bundles:
Unable to install bundle wrap:mvn:postgresql/postgresql/9.4-1201-jdbc41
karaf#root()> install -s mvn:postgresql/postgresql/9.4-1201-jdbc41
Bundle IDs:
Error executing command: Error installing bundles:
Unable to install bundle mvn:postgresql/postgresql/9.4-1201-jdbc41
karaf#root()>
I looked in the Karaf logs with log level of INFO.
Caused by: java.lang.NoClassDefFoundError: org/osgi/service/jdbc/DataSourceFactory
at org.postgresql.osgi.PGBundleActivator.start(PGBundleActivator.java:32)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2154)
... 11 more
Caused by: java.lang.ClassNotFoundException: org.osgi.service.jdbc.DataSourceFactory not found by org.postgresql.jdbc41 [5328]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)[org.apache.felix.framework-4.4.1.jar:]
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)[org.apache.felix.framework-4.4.1.jar:]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)[org.apache.felix.framework-4.4.1.jar:]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_25]
Provisioning Postgresql JDBC Driver to Karaf 4.0.1
__ __ ____
/ //_/____ __________ _/ __/
/ ,< / __ `/ ___/ __ `/ /_
/ /| |/ /_/ / / / /_/ / __/
/_/ |_|\__,_/_/ \__,_/_/
Apache Karaf (4.0.1)
Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.
karaf#root()> feature:repo-add mvn:org.ops4j.pax.jdbc/pax-jdbc-features/0.7.0/xml/features
karaf#root()>feature:install pax-jdbc-spec
karaf#root()>feature:install transaction
karaf#root()>bundle:install -s mvn:org.postgresql/postgresql/9.4-1200-jdbc41
karaf#root()> service:list org.osgi.service.jdbc.DataSourceFactory
[org.osgi.service.jdbc.DataSourceFactory]
-----------------------------------------
osgi.jdbc.driver.class = org.postgresql.Driver
osgi.jdbc.driver.name = PostgreSQL JDBC Driver
osgi.jdbc.driver.version = PostgreSQL 9.4 JDBC4.1 (build 1200)
service.bundleid = 52
service.id = 113
service.scope = singleton
Provided by :
PostgreSQL JDBC Driver JDBC41 (52)
Definining a Postgres Pool Datasource to Karaf 4.0.1
Theory at: https://ops4j1.jira.com/wiki/display/PAXJDBC/Create+DataSource+from+config
karaf#root()>feature:install pax-jdbc-config
karaf#root()>feature:install pax-jdbc-pool-dbcp2
Create file under KARAF_HOME/etc/org.ops4j.datasource-companymanager.cfg
where companymanager is the datasource name.
osgi.jdbc.driver.name=PostgreSQL JDBC Driver-pool-xa
serverName=localhost
databaseName=companymanager
portNumber=5432
user=postgres
password=admin
dataSourceName=companymanager
Voilá you are done, your datasource is exposed to OSGI registry ready to be used at your will:
karaf#root()> service:list javax.sql.DataSource
[javax.sql.DataSource]
----------------------
databaseName = companymanager
dataSourceName = companymanager
felix.fileinstall.filename = file:/C:/apache-karaf-4.0.1/etc/org.ops4j.datasource-companymanager.cfg
osgi.jdbc.driver.name = PostgreSQL JDBC Driver-pool-xa
osgi.jndi.service.name = companymanager
password = admin
portNumber = 5432
serverName = localhost
service.bundleid = 64
service.factoryPid = org.ops4j.datasource
service.id = 119
service.pid = org.ops4j.datasource.3cad9abf-49be-4868-8940-1623481b1363
service.scope = singleton
user = postgres
Provided by :
OPS4J Pax JDBC Config (64)
The next step will be perhaps set up JPA if you are interested, you can keep reading and get the full example code from:
https://github.com/antoniomaria/karaf4-eclipselink-jpa
Just tested with Karaf 4.0.0.M2:
OSGi compendium exports org.osgi.service.jdbc
__ __ ____
/ //_/____ __________ _/ __/
/ ,< / __ `/ ___/ __ `/ /_
/ /| |/ /_/ / / / /_/ / __/
/_/ |_|\__,_/_/ \__,_/_/
Apache Karaf (4.0.0.M2)
Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.
karaf#root()> feature:install transaction
karaf#root()> install -s mvn:org.osgi/org.osgi.compendium/5.0.0
Bundle ID: 51
karaf#root()> install -s wrap:mvn:org.postgresql/postgresql/9.4-1201- jdbc41
Bundle ID: 52
karaf#root()> list
START LEVEL 100 , List Threshold: 50
ID | State | Lvl | Version | Name
----------------------------------------------------------------------
51 | Active | 80 | 5.0.0.201305092017 | osgi.cmpn
52 | Active | 80 | 9.4.0.build-1201 | PostgreSQL JDBC Driver JDBC41
karaf#root()>
The Apache Karaf DataSources (JDBC) is an optional enterprise feature. In order to install the postgresql, please use the following statements.
karaf#root()> feature:install jdbc
karaf#root()> install -s mvn:org.postgresql/postgresql/9.4-1203-jdbc42
the above solution was tested on Karaf 4.0.1
I Use the following 2 commands to install the hawtio feature in apache karaf
features:addurl mvn:io.hawt/hawtio-karaf/1.4.17/xml/features
features:install hawtio
When I run "features:install hawtio" I get the following error
"Error executing command: Could not start bundle mvn:io.hawt/hawtio-osgi-jmx/1.4.17 in feature(s) hawtio-core-1.4.17: Activator start error in bundle io.hawt.hawtio-osgi-jmx [286]"
Could you help me fix this.
Works fine for me
davsclaus:/opt/apache-karaf-2.3.7/$ bin/karaf
__ __ ____
/ //_/____ __________ _/ __/
/ ,< / __ `/ ___/ __ `/ /_
/ /| |/ /_/ / / / /_/ / __/
/_/ |_|\__,_/_/ \__,_/_/
Apache Karaf (2.3.7)
Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'osgi:shutdown' or 'logout' to shutdown Karaf.
karaf#root> features:addurl mvn:io.hawt/hawtio-karaf/1.4.17/xml/features
karaf#root> features:install hawtio
karaf#root> web:list
ID State Web-State Level Web-ContextPath Name
[ 86] [Active ] [Deployed ] [ 80] [/hawtio ] hawtio :: hawtio-web (1.4.17)
[ 88] [Active ] [Deployed ] [ 80] [/hawtio-karaf-terminal ] hawtio :: Karaf terminal plugin (1.4.17)
karaf#root>
And btw there is shortcut to add hawtio, by
features:chooseurl hawtio 1.4.17
So you need to check the logs what is failing for you, you can use log:display or check the data/logs directory of Apache Karaf.
I was using the wrong Java version, I was using 1.6.x the compatible version for hawtio 1.4.17 is Java 1.7.x