Hi Doug,

I think it was you, who left a comment on my blog about the same issue. I
have left you a response there.

http://techpolesen.blogspot.com/2007/08/using-ssl-with-xfirecxf-battling.html

Basically, I think you should try with this conduit name:

"{http://gov.nwcg.isuite.webservice}ConnectionAdmin";

In the client config, even though you are deploying on SSL.

/Per

doug.anderson wrote:
>
> I believe I am having the same problems connecting to a https web service
> as
> you were having.  I was wondering what the solution was that worked for
> you.
>
> I have a simple web service and client.  When I host it on Tomcat at
> http://localhost:8080/service/services, the client connects just fine, but
> it does not work when using https://localhost:8443/service/services.
>
> I am using spring.
>
> For connection on  http://localhost:8080/service/services
>
> here is the relevant portion of the spring config file on the server:
>
>        <jaxws:endpoint
>          id="connectionAdmin"
>          implementor="#connectionAdminService"
>          address="/connectionAdminService" />
>
> here is the relevant portion of the spring file for the client:
>    <bean id="adminClient"
> class="gov.nwcg.isuite.service.webservice.admin.ConnectionAdminService"
> factory-bean="adminClientFactory" factory-method="create"/>
>
>    <bean id="adminClientFactory"
> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
>        <property name="serviceClass"
> value="gov.nwcg.isuite.service.webservice.admin.ConnectionAdminService"/>
>        <property name="address"
> value="http://localhost:8080/service/services/connectionAdminService"/>
>    </bean>
>
>
> The server page at http://localhost:8080/service/services/  returns:
> {http://gov.nwcg.isuite.webservice}ConnectionAdmin
>
> When I run the client, it connects to the web service and everything is
> fine
>
> now I want to connect on https
>
> I change the spring config on the client to have an http:conduit with SSL
> and change the address of the client factory.  It now reads:
>
>        <http:conduit
> name="{https://gov.nwcg.isuite.webservice}ConnectionAdmin.http-conduit";>
>                <http:tlsClientParameters secureSocketProtocol="SSL">
>                </http:tlsClientParameters>
>        </http:conduit>
>
>    <bean id="adminClient"
> class="gov.nwcg.isuite.service.webservice.admin.ConnectionAdminService"
> factory-bean="adminClientFactory" factory-method="create"/>
>
>    <bean id="adminClientFactory"
> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
>        <property name="serviceClass"
> value="gov.nwcg.isuite.service.webservice.admin.ConnectionAdminService"/>
>        <property name="address"
> value="https://localhost:8443/service/services/connectionAdminService"/>
>    </bean>
>
> The server page at https://localhost:8443/service/services/  returns:
> {http://gov.nwcg.isuite.webservice}ConnectionAdmin
>
> When the client runs, I get the same error you were getting:
>
> ......
> Caused by: java.io.IOException: Illegal Protocol https for HTTP
> URLConnection Factory.
>        at
> org.apache.cxf.transport.http.HttpURLConnectionFactoryImpl.createConnection(HttpURLConnectionFactoryImpl.java:44)
>        at
> org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:468)
>        at
> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
>        ... 7 more
>
>
> Could you tell me what I am missing?
>
> Thanks for your help
>
>
> Doug Anderson
>
>
> Pirola Davide-2 wrote:
>>
>> Hi all,
>> I solved the problem... was my fault :(
>> Now I can contact adsense web services... BUT I have another issue.
>> When I call the service cxf give me this error:
>> org.apache.cxf.binding.soap.SoapFault: "null" is not a valid SOAP
>> version
>>
>> The reason is that all services give me a wrong http response (415
>> Unsupported Media Type).
>>
>> My request:
>> [EMAIL PROTECTED] pairs: {POST
>> /api/adsense/v2/AccountService HTTP/1.1: null}{Content-Type: text/xml;
>> charset=UTF-8}{developer_email: [EMAIL PROTECTED]:
>> ""}{developer_password: mypassword}{client_id: ignored}{Cache-Control:
>> no-cache}{Pragma: no-cache}{User-Agent: Java/1.6.0_01}{Host:
>> sandbox.google.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2,
>> */*; q=.2}{Connection: keep-alive}{Transfer-Encoding: chunked}
>>
>> Google response:
>> [EMAIL PROTECTED] pairs: {null: HTTP/1.1 415
>> Unsupported
>> Media Type}{Content-Type: text/html; charset=UTF-8}{Cache-control:
>> private}{Content-Length: 167}{Date: Tue, 17 Jul 2007 17:09:38
>> GMT}{Server:
>> GFE/1.3}
>>
>>
>> Anyone have experience on this problem?
>> Sure, Is always my fault.. but where? :D
>>
>> Thanks
>> Davide
>>
>>
>> -----Original Message-----
>> From: Pirola Davide
>> Sent: venerdì 13 luglio 2007 10.12
>> To: '[email protected]'
>> Subject: RE: Generated client to connect to a https ws
>>
>> Hi Dan & Willem,
>> Thanks for your support!
>> The problem I have is in this peace of code
>> (AbstractHTTPTransportFactory):
>>
>>      /**
>>      * This static call creates a connection factory based on
>>      * the existence of the SSL (TLS) client side configuration.
>>      */
>>     static HttpURLConnectionFactory getConnectionFactory(
>>         HTTPConduit configuredConduit
>>     ) {
>>         HttpURLConnectionFactory fac = null;
>>
>>         if (configuredConduit.getTlsClientParameters() != null) {
>>             fac = new HttpsURLConnectionFactory(
>>                              configuredConduit.getTlsClientParameters());
>>         } else {
>>             fac = new HttpURLConnectionFactoryImpl();
>>         }
>>         return fac;
>>     }
>>
>> The "configuredConduit" object seems to be ok... so I have it from the
>> one
>> configured in my cxf.xml file:
>>
>> <http:conduit
>> name="{http://www.google.com/api/adsense/v2}AccountServiceService.http-conduit";>
>>     <http:tlsClientParameters>
>>     </http:tlsClientParameters>
>> </http:conduit>
>>
>> BUT... the getTlsClientParameters() method return a null object :(
>> So... seems that the general definition of conduit is ok.. but the
>> http:tlsClientParameters is ingnored.
>>
>> I tried to put "http:conduit" definition in my cxf.xml file, and I used
>> the system property to tell to cxf to load it, then I tried to put it in
>> the cxf.xml file contained in the cxf-2.0-incubator.jar
>> (/META-INF/cxf/cxf.xml).. but the result is the same.
>>
>> Now I'm trying to use the API, as suggested from Dan.
>>
>> Thanks
>> Davide
>>
>>
>>
>>
>> -----Original Message-----
>> From: Dan Diephouse [mailto:[EMAIL PROTECTED]
>> Sent: giovedì 12 luglio 2007 21.42
>> To: [email protected]
>> Subject: Re: Generated client to connect to a https ws
>>
>> Actually if you're using the client API, this is probably easier:
>>
>> YourService s = new YourService()
>> ServiceInterface client = s.getYourServiceSoapHttpPort
>>
>> Client c = ClientProxy.getClient(client);
>> HTTPConduit conduit = (HTTPConduit) c.getConduit()
>> TLSClientParameters tlsParams = new TLSClientParameters();
>> conduit.setTlsClientParameters(tlsParams);
>>
>> Thats equivalent to the XMLM that Willem posted. I would think that you
>> need
>> to do something further with the tlsParams object (like tell it to
>> accept
>> the google certificate), but I'm not sure offhand how to do that. Anyone
>> else around know?
>>
>> - Dan
>>
>> On 7/11/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
>>>
>>> Please take the hello_world_https in the samples directory as a
>>> example.
>>>
>>> Here is the sample configuration files for you case:
>>>
>>> <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";
>>>   xsi:schemaLocation="
>>>            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.xsd";>
>>>
>>>   <http:conduit
>>> name="{http://www.google.com/api/adsense/v2}AccountService.http-conduit";>
>>>     <http:tlsClientParameters>
>>>     </http:tlsClientParameters>
>>>    </http:conduit>
>>> </beans>
>>>
>>> Cheers,
>>>
>>> Willem.
>>>
>>> Pirola Davide wrote:
>>> > Hi,
>>> >
>>> > i'm new on cxf.
>>> >
>>> > I want to generate a client in order to connect to AdSense api of
>>> > google:
>>> >
>>> > http://code.google.com/apis/adsense/developer/adsense_api_services.html
>>> >
>>> >
>>> >
>>> > I'm using wsdl2java, and I run it to point to a wsdl like this one:
>>> >
>>> > https://www.google.com/api/adsense/v2/AccountService?wsdl
>>> >
>>> >
>>> >
>>> > it generate all needed classes. So it's seems pretty cool :D
>>> >
>>> > But... when I try to connect to the google server I receive this
>>> error:
>>> >
>>> >
>>> >
>>> > 11-lug-2007 14.40.45 org.apache.cxf.phase.PhaseInterceptorChain
>>> > doIntercept
>>> >
>>> > INFO: Interceptor has thrown exception, unwinding now
>>> >
>>> > org.apache.cxf.interceptor.Fault: Could not send Message.
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(Messag
>>> > eSenderInterceptor.java:48)
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
>>> > hain.java:206)
>>> >
>>> >        at
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253)
>>> >
>>> >        at
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:204)
>>> >
>>> >        at
>>> > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> >
>>> >        at
>>> > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>> >
>>> >        at $Proxy28.createAdSenseAccount(Unknown Source)
>>> >
>>> >        at
>>> >
>>> com.google.api.adsense.v2.AccountServiceClient2.main(AccountServiceClien
>>> > t2.java:54)
>>> >
>>> > Caused by: java.io.IOException: Illegal Protocol https for HTTP
>>> > URLConnection Factory.
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.transport.http.HttpURLConnectionFactoryImpl.createConnect
>>> > ion(HttpURLConnectionFactoryImpl.java:44)
>>> >
>>> >        at
>>> > org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:468)
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(Messag
>>> > eSenderInterceptor.java:46)
>>> >
>>> >        ... 7 more
>>> >
>>> > Exception in thread "main" javax.xml.ws.soap.SOAPFaultException:
>>> Could
>>> > not send Message.
>>> >
>>> >        at
>>> > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:168)
>>> >
>>> >        at $Proxy28.createAdSenseAccount(Unknown Source)
>>> >
>>> >        at
>>> >
>>> com.google.api.adsense.v2.AccountServiceClient2.main(AccountServiceClien
>>> > t2.java:54)
>>> >
>>> > Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(Messag
>>> > eSenderInterceptor.java:48)
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
>>> > hain.java:206)
>>> >
>>> >        at
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253)
>>> >
>>> >        at
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:204)
>>> >
>>> >        at
>>> > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> >
>>> >        at
>>> > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>>> >
>>> >        ... 2 more
>>> >
>>> > Caused by: java.io.IOException: Illegal Protocol https for HTTP
>>> > URLConnection Factory.
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.transport.http.HttpURLConnectionFactoryImpl.createConnect
>>> > ion(HttpURLConnectionFactoryImpl.java:44)
>>> >
>>> >        at
>>> > org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:468)
>>> >
>>> >        at
>>> >
>>> org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(Messag
>>> > eSenderInterceptor.java:46)
>>> >
>>> >        ... 7 more
>>> >
>>> >
>>> >
>>> > Seems that the generated client is not able to connect via https.
>>> >
>>> > Someone have any idea about this problem?
>>> >
>>> > What I miss??
>>> >
>>> >
>>> >
>>> > Thanks
>>> >
>>> > Davide
>>> >
>>> >
>>> >
>>>
>>
>>
>>
>> --
>> Dan Diephouse
>> Envoi Solutions
>> http://envoisolutions.com | http://netzooid.com/blog
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Generated-client-to-connect-to-a-https-ws-tf4061903.html#a12377897
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>


-- 
Per Olesen @ Nordija A/S - www.nordija.com - main#: +45 70 20 25 10
email: [EMAIL PROTECTED] - cell#: +45 23 38 95 81

Reply via email to