I'm running into an odd issue. I can get the unit tests within the Java CTCTWSJavaLib project to run. When I incorporate the code into my own project, I get the following exception:
javax.net.ssl.SSLException: hostname in certificate didn't match: <api.constantcontact.com/208.75.122.62> != <api.constantcontact.com> OR <api.constantcontact.com>
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:228)
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:54)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:149)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:130)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:495)
at org.apache.http.conn.scheme.SchemeSocketFactoryAdaptor.connectSocket(SchemeSocketFactoryAdaptor.java:62)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.ctctlabs.ctctwsjavalib.CTCTConnection.doGetRequest(CTCTConnection.java:109)
at com.ctctlabs.ctctwsjavalib.CTCTConnection.authenticate(CTCTConnection.java:196)
at com.accuval.appraisal.server.service.constantcontact.webservice.ConstantContactWebServiceWrapper.getCampaigns(ConstantContactWebServiceWrapper.java:31)
I can't seem to figure out why the hostname is changing from one project to another, and why this is causing the connection to fail.
Has anyone else run into this issue?
Solved! Go to Solution.
So I found a solution to this, but not sure why it worked. I figured it had something to do with the way my project was building the dependencies. So I changed some build path settings.
In Eclipse, I had to modify the Order and Export order in my project's Java Build Path panel. I moved the CTCTWSJavaLib project to the top of the list, and checked it's box. This allwed the code to run correctly. I'm not sure why this fixed the problem, as the Exception I was geeting seemd unrelated.
So I found a solution to this, but not sure why it worked. I figured it had something to do with the way my project was building the dependencies. So I changed some build path settings.
In Eclipse, I had to modify the Order and Export order in my project's Java Build Path panel. I moved the CTCTWSJavaLib project to the top of the list, and checked it's box. This allwed the code to run correctly. I'm not sure why this fixed the problem, as the Exception I was geeting seemd unrelated.
Hi,
Thank you very much for posting the solution. The java library isn't officially supported and we don't often get questions on it, but it looks like the library has a reference to both the api url and IP address, which wasn't matching for certificate purposes (only url is needed - api.constantcontact.com). Changing the order most likely overrode the library's other reference to ip and url. Sorry for the trouble!
Best Regards,
Shannon W.
API Support Specialist
Announcements
Join our list to be notified of new features and updates to our V3 API.
Sign Up