Colm : I did add the certificates to for e.g. in the Firefox explicitly.
Yes, you added the certificates so that the browser trusted the service
endpoint. However, as I explained in my previous mail, the service endpoint
requires that the client presents its own certificate + private key for
client authentication, hence the failure.
Colm.
On Mon, Jun 25, 2012 at 2:51 PM, Himanshu Gupta<[email protected]
wrote:
Hello Guys,
Colm : I did add the certificates to for e.g. in the Firefox explicitly.
Following
http://aruld.info/programming-ssl-for-jetty-based-cxf-services/ for
my Dynamic Client, I try to do somthing like below :
1. JaxWsDynamicClientFactory dcf =
JaxWsDynamicClientFactory.newInstance();
2. Client client = dcf.createClient("
https://localhost:9001/ApexCollateral/ing/services/wss/agreementDemo/2.0?wsdl
");
3. configureSSLOnTheClient(client);
4. Object[] res = client.invoke("getAgreementDemoIdentifier", new
Integer(1));
Theoretically it should have worked, but it fails with an exception like
"org.apache.cxf.service.factory.ServiceConstructionException: Could not
resolve URL "https://localhost:9001/someService/2.0?wsdl".", while
excetuing *line number 2 (*logs attached*) *that is even before line 3
where I could setup the truststore, manually.
I really want to use the Dynamic Client approach in the test cases to
test
my web services. I assume, along with the testing services, with this
approach I also validate auto code generation for clients, which would be
used eventually by the consumers (by exposed wsdls).
Please help,
Thanks,
Himanshu.
On Mon, Jun 25, 2012 at 2:51 PM, Glen Mazza<[email protected]> wrote:
Personally, for SSL, I would recommend using a standalone servlet
container like Tomcat to host your web service (
http://www.jroller.com/**
gmazza/entry/ssl_for_web_**services<
http://www.jroller.com/gmazza/entry/ssl_for_web_services>),
I wouldn't rely on Endpoint.publish() for production, especially if
you're
using SSL.
For your dynamic client, as the link above mentions, the certs will need
to be in the "cacerts" file used by the JRE that is running the dynamic
client--or another truststore file that you configure--the browser is
irrelevant as it's not being used there.
HTH,
Glen
On 06/25/2012 07:46 AM, Himanshu Gupta wrote:
Hello Experts,
Quite new to CXF, having a usecase where I need to expose our existing
services as webservices. App is a standalone server, so am using
embedded
jetty with https. Everything works fine, except that when I hit the
server
with the wsdl url through a browser (any browser), I get
"javax.net.ssl.**SSLHandshakeException: no cipher suites in common".
This could be reproduced if you just run the wsdl_first_https server
and
hit the url https://localhost:9001/**SoapContext/SoapPort?wsdl<
https://localhost:9001/SoapContext/SoapPort?wsdl>.
Please help
escape this problem.
Also the client in the wsdl_first_https works. But if I try to use the
Dynamic Client (thats a requirement), it fails as well, as it could not
find the wsdl. The Dynamic client looks somthing like below :
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.**
newInstance();
Client client = dcf.createClient("
https://localhost:443/**someservice/2.0?wsdl<
https://localhost:443/someservice/2.0?wsdl>
<https://**localhost/someservice/2.0?wsdl<
https://localhost/someservice/2.0?wsdl>
**>
");
Object[] res = client.invoke(jnew
QName("http://someNameSpace/<h**ttp://somenamespace/<
http://somenamespace/>
",
"getSomeIdentifier"), new Integer(1));
PS : I have already tried adding the certs to the browser.
Thanks in Advance,
--
Glen Mazza
Talend Community Coders
coders.talend.com
blog: www.jroller.com/gmazza
--
Himanshu Gupta.
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com