http://www.jroller.com/gmazza/entry/setting_up_ssl_and_basic ?
I would update your web.xml to require SSL (see step #4 above, and alter the WSDL that your client is reading to use https:// instead of http:// -- step #5 above). HTH, Glen harryvanrijn wrote: > > Hallo, > > I want to access a Webservice over HTTPS. > > In order to do so I configured the 'http:conduit' element in my cxf.xml. > > This cxf.xml is used by a webservice client inside of a servlet, so > I put the cxf.xml beneath the .../WEB-INF/classes directory. > > The Service en port Object can be created without any problems. > But as soon as I call a method in the webservice, I get an Exception > concerning the use of 'http' protocol (see below). > > Here are my web.xml and the cxf.xml > > ............... web.xml ............................................... > > <?xml version="1.0" encoding="UTF-8"?> > <web-app > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns="http://java.sun.com/xml/ns/javaee" > xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > id="MyClient" > version="2.5"> > > <display-name>MyClient</display-name> > > <context-param> > <param-name>webAppRootKey</param-name> > <param-value>MyClient</param-value> > </context-param> > > <listener> > <listener-class> > org.springframework.web.util.Log4jConfigListener > </listener-class> > </listener> > > <servlet> > <servlet-name>SomeServlet</servlet-name> > <servlet-class> > some.other.example.SomeServlet > </servlet-class> > </servlet> > <servlet-mapping> > <servlet-name>SomeServlet</servlet-name> > <url-pattern>/SomeServlet</url-pattern> > </servlet-mapping> > > </web-app> > > ............... cxf.xml ............................................... > > <beans > xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:sec="http://cxf.apache.org/configuration/security" > xmlns:http="http://cxf.apache.org/transports/http/configuration" > xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" > xmlns:cxf="http://cxf.apache.org/core" > xsi:schemaLocation=" > http://cxf.apache.org/core > http://cxf.apache.org/schemas/core.xsd > http://cxf.apache.org/configuration/security > http://cxf.apache.org/schemas/configuration/security.xsd > http://cxf.apache.org/transports/http/configuration > http://cxf.apache.org/schemas/configuration/http-conf.xsd > http://www.springframework.org/schema/beans > > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> > > <http:conduit name="{http://this.is.my.namespace}MyPort.http-conduit"> > > <http:tlsClientParameters secureSocketProtocol="SSL"> > <sec:keyManagers keyPassword="topsecret"> > <sec:keyStore type="JKS" password="topsecret" > file="/opt/tomcat/conf/tpay/mykeystore.keystore"/> > </sec:keyManagers> > <sec:trustManagers> > <sec:keyStore type="JKS" password="changeit" > file="/opt/tomcat/conf/tpay/mytruststore.keystore"/> > </sec:trustManagers> > > <sec:cipherSuitesFilter> > <!-- these filters ensure that a ciphersuite > with > export-suitable or null encryption is used, > but exclude anonymous Diffie-Hellman key change as > this is vulnerable to man-in-the-middle attacks --> > <sec:include>.*_EXPORT_.*</sec:include> > <sec:include>.*_EXPORT1024_.*</sec:include> > <sec:include>.*_WITH_DES_.*</sec:include> > <sec:include>.*_WITH_NULL_.*</sec:include> > <sec:exclude>.*_DH_anon_.*</sec:exclude> > </sec:cipherSuitesFilter> > </http:tlsClientParameters> > > <http:client ContentType="text/xml"/> > > </http:conduit> > > </beans> > > ............... the code with the webservice call > ............................................... > > QName myWebServiceName = > new QName("http://this.is.my.namespace", "MyWebService"); > wsdlURL = new URL("https://this.is.my.namespace/services/MyService" + > "?wsdl"); > > myWebService = new WebService(wsdlURL, myWebServiceName ); > port = myWebService .getMyPort(); > > ............... the Exception > ............................................... > > INFO: Interceptor has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: Could not send Message. > at > org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222) > at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:177) > at $Proxy35.delete(Unknown Source) > at com.tsystems.tpay.micromoney.ws.MicroMoneyWsClient.delete(Unknown > Source) > at com.tsystems.tpay.micromoney.ws.MicroMoneyWsClient.doPost(Unknown > Source) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > 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:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.io.IOException: Illegal Protocol http for HTTPS > URLConnection Factory. > at > org.apache.cxf.transport.https.HttpsURLConnectionFactory.createConnection(HttpsURLConnectionFactory.java:124) > at > org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:480) > at > org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46) > ... 22 more > > I have tried to add i.e. 'secureSocketProtocol="SSL"' to the > 'http:tlsClientParameters' element in the cxf file, but nothings helps. > The problem is somewhere in my configuration, but I cannot solve it due to > lack of sensible documentation. > Also I cannot verify (in logs) of the cxf.xml is really evaluated. > Any Help would be welcome. > > Harry > > -- View this message in context: http://www.nabble.com/java.io.IOException%3A-Illegal-Protocol-http-for-HTTPS-URLConnection--Factory-tp19412659p19414334.html Sent from the cxf-user mailing list archive at Nabble.com.
