Bug description I got this error when I create embeddingModel bean during start spring boot application. 2024-09-21T15:13:21.100+07:00 INFO 26816 --- [ollama-example1] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1246 ms 2024-09-21T15:13:22.284+07:00 WARN 26816 --- [ollama-example1] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddingModel' defined in class path resource [org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.class]: Failed to cache the resource: URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json] 2024-09-21T15:13:22.288+07:00 INFO 26816 --- [ollama-example1] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2024-09-21T15:13:22.299+07:00 INFO 26816 --- [ollama-example1] [ main] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-09-21T15:13:22.315+07:00 ERROR 26816 --- [ollama-example1] [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddingModel' defined in class path resource [org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.class]: Failed to cache the resource: URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] at com.example.demo.DemoApplication.main(DemoApplication.java:11) ~[classes/:na] Caused by: java.lang.IllegalStateException: Failed to cache the resource: URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json] at org.springframework.ai.transformers.ResourceCacheService.getCachedResource(ResourceCacheService.java:116) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2] at org.springframework.ai.transformers.TransformersEmbeddingModel.getCachedResource(TransformersEmbeddingModel.java:209) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2] at org.springframework.ai.transformers.TransformersEmbeddingModel.afterPropertiesSet(TransformersEmbeddingModel.java:182) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.6.jar:6.1.6] ... 16 common frames omitted Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[na:na] at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378) ~[na:na] at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321) ~[na:na] at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316) ~[na:na] at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357) ~[na:na] at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232) ~[na:na] at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175) ~[na:na] at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) ~[na:na] at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480) ~[na:na] at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458) ~[na:na] at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) ~[na:na] at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) ~[na:na] at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1510) ~[na:na] at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1425) ~[na:na] at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) ~[na:na] at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) ~[na:na] at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:589) ~[na:na] at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187) ~[na:na] at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665) ~[na:na] at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) ~[na:na] at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224) ~[na:na] at org.springframework.core.io.UrlResource.getInputStream(UrlResource.java:232) ~[spring-core-6.1.6.jar:6.1.6] at org.springframework.ai.transformers.ResourceCacheService.getCachedResource(ResourceCacheService.java:110) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2] ... 20 common frames omitted Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439) ~[na:na] at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306) ~[na:na] at java.base/sun.security.validator.Validator.validate(Validator.java:264) ~[na:na] at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) ~[na:na] at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) ~[na:na] at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341) ~[na:na] ... 38 common frames omitted Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146) ~[na:na] at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:127) ~[na:na] at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) ~[na:na] at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434) ~[na:na] ... 43 common frames omitted
Environment Spring AI : 1.0.0-M2 Spring Boot: 3.2.5 Java : 17 Local machine that run under company's network that have company's proxy which will block any unknown https to calling out
Steps to reproduce - Run under private network that don't have internet or company's network that have company's proxy which will block any unknown https to calling out
Expected behavior
TransformersEmbeddingModelAutoConfiguration should not call this url.
https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json
Due to spring ai application should allow to run under private network that don't need internet.
Minimal Complete Reproducible example
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-transformers-spring-boot-starter</artifactId>
<version>1.0.0-M2</version>
</dependency>
Comment From: inpink
Hello, could you share the code that triggered this error when it was executed? I’d like to test it as well :)
Comment From: NineWoranop
@inpink java code has SpringApplication class only. I just have pom.xml and application.properties. https://github.com/NineWoranop/ollama-example2
Comment From: NineWoranop
This is normal logs when it run under normal internet. 2024-09-30T06:06:28.404+07:00 INFO 1116 --- [ollama-example2] [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 17.0.11 with PID 1116 (/Users/tom/git/ollama-example2/target/classes started by tom in /Users/tom/git/ollama-example2) 2024-09-30T06:06:28.405+07:00 INFO 1116 --- [ollama-example2] [ main] com.example.demo.DemoApplication : No active profile set, falling back to 1 default profile: "default" 2024-09-30T06:06:28.964+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2024-09-30T06:06:28.970+07:00 INFO 1116 --- [ollama-example2] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-09-30T06:06:28.970+07:00 INFO 1116 --- [ollama-example2] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.20] 2024-09-30T06:06:29.014+07:00 INFO 1116 --- [ollama-example2] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-09-30T06:06:29.014+07:00 INFO 1116 --- [ollama-example2] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 584 ms 2024-09-30T06:06:29.415+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.a.transformers.ResourceCacheService : Create cache root directory: /var/folders/d7/f5vyr_n10hxd9sf_xygdfmyh0000gn/T/spring-ai-onnx-generative 2024-09-30T06:06:30.174+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.a.transformers.ResourceCacheService : Caching the URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json] resource to: /var/folders/d7/f5vyr_n10hxd9sf_xygdfmyh0000gn/T/spring-ai-onnx-generative/4d42ba07-cb22-352f-bb44-beccc8c8c0b7/tokenizer.json 2024-09-30T06:06:34.707+07:00 INFO 1116 --- [ollama-example2] [ main] ai.djl.util.Platform : Found matching platform from: jar:file:/Users/tom/.m2/repository/ai/djl/huggingface/tokenizers/0.28.0/tokenizers-0.28.0.jar!/native/lib/tokenizers.properties 2024-09-30T06:06:45.018+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.a.transformers.ResourceCacheService : Caching the URL [https://github.com/spring-projects/spring-ai/raw/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.onnx] resource to: /var/folders/d7/f5vyr_n10hxd9sf_xygdfmyh0000gn/T/spring-ai-onnx-generative/eb4e1bd7-63c5-301b-8383-5df6a4a2adea/model.onnx 2024-09-30T06:06:45.109+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.a.t.TransformersEmbeddingModel : Model input names: input_ids, attention_mask, token_type_ids 2024-09-30T06:06:45.109+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.a.t.TransformersEmbeddingModel : Model output names: last_hidden_state 2024-09-30T06:06:45.141+07:00 INFO 1116 --- [ollama-example2] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '' 2024-09-30T06:06:45.148+07:00 INFO 1116 --- [ollama-example2] [ main] com.example.demo.DemoApplication : Started DemoApplication in 16.959 seconds (process running for 17.245)
Comment From: NineWoranop
This is the error when I turn off my wifi.
2024-09-30T06:31:17.533+07:00 INFO 1043 --- [ollama-example2] [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 17.0.11 with PID 1043 (/Users/tom/git/ollama-example2/target/classes started by tom in /Users/tom/git/ollama-example2) 2024-09-30T06:31:17.534+07:00 INFO 1043 --- [ollama-example2] [ main] com.example.demo.DemoApplication : No active profile set, falling back to 1 default profile: "default" 2024-09-30T06:31:17.999+07:00 INFO 1043 --- [ollama-example2] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2024-09-30T06:31:18.004+07:00 INFO 1043 --- [ollama-example2] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-09-30T06:31:18.004+07:00 INFO 1043 --- [ollama-example2] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.20] 2024-09-30T06:31:18.037+07:00 INFO 1043 --- [ollama-example2] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-09-30T06:31:18.037+07:00 INFO 1043 --- [ollama-example2] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 481 ms 2024-09-30T06:31:18.408+07:00 INFO 1043 --- [ollama-example2] [ main] o.s.a.transformers.ResourceCacheService : Create cache root directory: /var/folders/d7/f5vyr_n10hxd9sf_xygdfmyh0000gn/T/spring-ai-onnx-generative 2024-09-30T06:31:18.415+07:00 WARN 1043 --- [ollama-example2] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddingModel' defined in class path resource [org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.class]: Failed to cache the resource: URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json] 2024-09-30T06:31:18.418+07:00 INFO 1043 --- [ollama-example2] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2024-09-30T06:31:18.432+07:00 INFO 1043 --- [ollama-example2] [ main] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-09-30T06:31:18.441+07:00 ERROR 1043 --- [ollama-example2] [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddingModel' defined in class path resource [org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.class]: Failed to cache the resource: URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) ~[spring-context-6.1.6.jar:6.1.6]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.6.jar:6.1.6]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5]
at com.example.demo.DemoApplication.main(DemoApplication.java:10) ~[classes/:na]
Caused by: java.lang.IllegalStateException: Failed to cache the resource: URL [https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json]
at org.springframework.ai.transformers.ResourceCacheService.getCachedResource(ResourceCacheService.java:116) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2]
at org.springframework.ai.transformers.TransformersEmbeddingModel.getCachedResource(TransformersEmbeddingModel.java:209) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2]
at org.springframework.ai.transformers.TransformersEmbeddingModel.afterPropertiesSet(TransformersEmbeddingModel.java:182) ~[spring-ai-transformers-1.0.0-M2.jar:1.0.0-M2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.6.jar:6.1.6]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.6.jar:6.1.6]
... 16 common frames omitted
Caused by: java.net.UnknownHostException: raw.githubusercontent.com
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:572) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:633) ~[na:na]
at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[na:na]
at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174) ~[na:na]
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183) ~[na:na]
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533) ~[na:na]
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638) ~[na:na]
at java.base/sun.net.www.protocol.https.HttpsClient.
Process finished with exit code 1
Comment From: ZYMCao
I have the same issue. Did you find out the solution, @NineWoranop ?
Comment From: markpollack
so much has changed since this was reported and i'm not sure how to reproduce with the info given. closing, please open if necessary.