[
https://issues.apache.org/activemq/browse/CAMEL-407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Micky Santomax updated CAMEL-407:
---------------------------------
Attachment: JettyHttpComponent.java
James, I think is a good solution to set getter and setter methods for
SslSocketConnector in JettyHttpComponent with which one can set (for example)
the keystore path or anything else.
If you want to consider this suggestion I have attached file with this patch
> Password error for jetty:https endpoint
> ---------------------------------------
>
> Key: CAMEL-407
> URL: https://issues.apache.org/activemq/browse/CAMEL-407
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-jetty
> Affects Versions: 1.3.0
> Reporter: Micky Santomax
> Priority: Critical
> Fix For: 1.3.0
>
> Attachments: JettyHttpComponent.java, TestHttpsRoute.java
>
>
> I've defined an http endpoint by this code :
> this.from("jetty:https://localhost:8193/SSLTest/")
> .process(new Processor());
> When I install my application in Tomcat 6.0.13 it throws this exception :
> 2008-03-18 20:05:42.998::WARN: EXCEPTION
> java.security.UnrecoverableKeyException: Password must not be null
> at
> sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:107)
> at
> sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:38)
> at java.security.KeyStore.getKey(KeyStore.java:763)
> at
> com.sun.net.ssl.internal.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:113)
> at
> com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:48)
> at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:239)
> at
> org.mortbay.jetty.security.SslSocketConnector.createFactory(SslSocketConnector.java:202)
> at
> org.mortbay.jetty.security.SslSocketConnector.newServerSocket(SslSocketConnector.java:407)
> at org.mortbay.jetty.bio.SocketConnector.open(SocketConnector.java:73)
> at
> org.mortbay.jetty.AbstractConnector.doStart(AbstractConnector.java:272)
> at
> org.mortbay.jetty.bio.SocketConnector.doStart(SocketConnector.java:147)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
> at
> org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:98)
> at
> org.apache.camel.component.http.HttpEndpoint.connect(HttpEndpoint.java:80)
> at
> org.apache.camel.component.http.HttpConsumer.doStart(HttpConsumer.java:50)
> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:51)
> at
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:64)
> at
> org.apache.camel.impl.DefaultCamelContext.startRoutes(DefaultCamelContext.java:461)
> at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:435)
> at
> org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:140)
> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:51)
> at
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:96)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
> at
> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
> at
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:91)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:75)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
> at
> it.unibas.springfreesbee.ContextStartup.contextInitialized(ContextStartup.java:43)
> at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> at
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
> at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:511)
> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1220)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
> at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
> at
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
> at
> org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1458)
> at
> org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:820)
> at
> org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:354)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:619)
> 2008-03-18 20:05:42.012::WARN: failed [EMAIL PROTECTED]:8193
> java.io.IOException: Could not create JsseListener:
> java.security.UnrecoverableKeyException: Password must not be null
> at
> org.mortbay.jetty.security.SslSocketConnector.newServerSocket(SslSocketConnector.java:446)
> at org.mortbay.jetty.bio.SocketConnector.open(SocketConnector.java:73)
> at
> org.mortbay.jetty.AbstractConnector.doStart(AbstractConnector.java:272)
> at
> org.mortbay.jetty.bio.SocketConnector.doStart(SocketConnector.java:147)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
> at
> org.apache.camel.component.jetty.JettyHttpComponent.connect(JettyHttpComponent.java:98)
> at
> org.apache.camel.component.http.HttpEndpoint.connect(HttpEndpoint.java:80)
> at
> org.apache.camel.component.http.HttpConsumer.doStart(HttpConsumer.java:50)
> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:51)
> at
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:64)
> at
> org.apache.camel.impl.DefaultCamelContext.startRoutes(DefaultCamelContext.java:461)
> at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:435)
> at
> org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:140)
> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:51)
> at
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:96)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
> at
> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
> at
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:91)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:75)
> at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
> at
> it.unibas.springfreesbee.ContextStartup.contextInitialized(ContextStartup.java:43)
> at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> at
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
> at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:511)
> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1220)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
> at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
> at
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
> at
> org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1458)
> at
> org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:820)
> at
> org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:354)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:619)
> ERROR [it.unibas.springfreesbee.ContextStartup - contextInitialized] -
> org.apache.camel.RuntimeCamelException: java.io.IOException: Could not create
> JsseListener: java.security.UnrecoverableKeyException: Password must not be
> null
> I have follow all steps of jetty ssl configuration, but the error is the same
> with both keytool and openssl applications.
> I think that problems are in routing because if I set only
> this.from("jetty:https://localhost:8193/SSLTest/");
> There aren't installation problems in Tomcat, when I access to the endpoint
> by browser it ask the acceptance of certificate. In this case there is
> another exception at runtime :
> 2008-03-26 18:56:14.933::WARN: handle failed
> java.lang.NullPointerException
> at
> org.mortbay.thread.BoundedThreadPool.isLowOnThreads(BoundedThreadPool.java:216)
> at
> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:218)
> at
> org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:620)
> at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.