Java Camel密钥库配置,用于从类路径读取.jks文件
使用Camel版本:2.17.1Java Camel密钥库配置,用于从类路径读取.jks文件,java,spring-security,apache-camel,ssl-certificate,Java,Spring Security,Apache Camel,Ssl Certificate,使用Camel版本:2.17.1 <camel:sslContextParameters id="sslContextParameters"> <camel:keyManagers keyPassword="pass123"> <camel:keyStore resource="KeyStore.jks" password="pass123"/> </came
<camel:sslContextParameters
id="sslContextParameters">
<camel:keyManagers
keyPassword="pass123">
<camel:keyStore
resource="KeyStore.jks"
password="pass123"/>
</camel:keyManagers>
</camel:sslContextParameters>
这是自然现象,还是有解决办法
更多跟踪:
从org.apache.camel.spring.main运行main时出错
[错误]
java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.camel.maven.RunMojo$1.run(RunMojo.java:458)
运行(Thread.java:745)
原因:org.apache.camel.runtimecameleexception:java.io.FileNotFoundException:KeyStore.jks(系统找不到指定的文件)
位于org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1690)
位于org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:138)
位于org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:340)
位于org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
位于org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
位于org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
位于org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:335)
位于org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:855)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
位于org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:139)
位于org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:93)
位于org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:213)
位于org.apache.camel.spring.Main.doStart(Main.java:153)
位于org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
位于org.apache.camel.main.MainSupport.run(MainSupport.java:138)
位于org.apache.camel.main.MainSupport.run(MainSupport.java:390)
位于org.apache.camel.spring.Main.Main(Main.java:86)
... 还有6个
原因:java.io.FileNotFoundException:KeyStore.jks(系统找不到指定的文件)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:146)
位于java.io.FileInputStream。(FileInputStream.java:101)
位于org.restlet.engine.ssl.DefaultSslContextFactory.createSslContext(DefaultSslContextFactory.java:309)
位于org.restlet.engine.connector.HttpsServerHelper.start(HttpsServerHelper.java:92)
位于org.restlet.Server.start(Server.java:579)
在org.apache.camel.component.restlet.restlecomponent.addServerIfEssential上(restlecomponent.java:388)
位于org.apache.camel.component.restlet.restlecomponent.connect(restlecomponent.java:174)
位于org.apache.camel.component.restlet.RestletEndpoint.connect(RestletEndpoint.java:116)
位于org.apache.camel.component.restlet.restletcummer.doStart(restletcummer.java:112)
位于org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
位于org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:3269)
位于org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:3563)
位于org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:3499)
位于org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3429)
位于org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3197)
位于org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3053)
位于org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)
位于org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2848)
位于org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2844)
位于org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2867)
位于org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2844)
位于org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
位于org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2813)
位于org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:270)
位于org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:136)
... 21更多无人回答?FileNotFound的确切意思是“找不到文件”。您的KeyStore.jks实际位于哪里?@Vadim当我们“跟踪”时,我们可以发现文件被读取了两次,文件位于类路径中。所以,如果它可以第一次读取而没有错误,为什么它应该第二次给出异常呢。他们是否缺少关闭流或类似的东西?不管从其他地方读取文件多少次。当Camel组件试图打开该文件但找不到该文件时,存在一个确切的位置。再说一遍,你的档案在哪里?它是类路径中的文件系统,打包到jar还是war中?因为您告诉Camel的只是“文件在当前目录中”。“它在那里吗?”瓦迪姆,就像我提到的,它在类路径中。
java.io.FileNotFoundException: KeyStore.jks (The system cannot find the file specified)