Nope, I'll show you exactly what I change where one gets a handshake error
and the other can't construct the XML message:

I change the URL between these two (depending on whether I was ssl or not
obviously):

https://localhost:8084/webservices/messaging.asmx

http://localhost:8084/webservices/messaging.asmx

The only other change I make is to comment out the SSL contents of cfx.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";
  xsi:schemaLocation="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.sendwordnow.com/notification}SWN_x0020_Messaging_x0020_Web_x0020_ServiceSoap.http-conduit
">

<!--<http:tlsClientParameters secureSocketProtocol="SSL">
      <sec:trustManagers>
          <sec:keyStore type="JKS" password="changeit"
               file="c:\jdk1.5.0_12\jre\lib\security\cacerts"/>
      </sec:trustManagers>
      <sec:keyManagers keyPassword="">
           <sec:keyStore type="JKS" password="changeit"
                file="c:\jdk1.5.0_12\jre\lib\security\cacerts"/>
      </sec:keyManagers>
    </http:tlsClientParameters>-->

  </http:conduit>
</beans>

It's prob hard to see but I commented the http:tlsClientParameters element.
So I use the http url and the commented cfx.xml and then I use the https url
and the uncommented cfx.xml.  When I do, the http one will fail because it
claims the XML can't be created, the other one generates a handshake error.
Nothing else is changed.  This problem also occurs on 2.1.  I can see if I
can get a test case to demonstrate this as well.

On 9/11/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
>
> Hi Ryan ,
>
> It is wired because there is only one difference in the the transport
> layer between the http and https.
> So I am wonder whether you create two different projects (one for http ,
> the other for https) or not.
>
> Maybe there are some difference between your two projects setting.
>
> Willem.
> Ryan Moquin wrote:
> > So things have only gotten worse in regards to things going haywire with
> CXF
> > and the webservice I'm trying to communicate with.  I'm able to send a
> soap
> > request directly to the webservice without an SSL problems, but I always
> get
> > a handshake error no matter what I try with CXF.  Here is my current
> > cxf.xmlfile:
> >
> > <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";
> >   xsi:schemaLocation="
> 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://testnotification/notification}NotificationPort.http-conduit";>
> >     <http:tlsClientParameters secureSocketProtocol="SSL">
> >       <sec:trustManagers>
> >           <sec:keyStore type="JKS" password="changeit"
> >                file="c:\jdk1.5.0_12\jre\lib\security\cacerts"/>
> >       </sec:trustManagers>
> >       <sec:keyManagers keyPassword="">
> >            <sec:keyStore type="JKS" password="changeit"
> >                 file="c:\jdk1.5.0_12\jre\lib\security\cacerts"/>
> >       </sec:keyManagers>
> >     </http:tlsClientParameters>
> >   </http:conduit>
> > </beans>
> >
> > this is the same store that my manual connection to the webservice is
> using,
> > yet with cxf I get:
> >
> > Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert:
> > handshake_failure
> >         at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(
> Alerts.java
> > :150)
> >         at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(
> Alerts.java
> > :117)
> >         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(
> > SSLSocketImpl.java:1584)
> >         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(
> > SSLSocketImpl.java:866)
> >         at
> > com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(
> > SSLSocketImpl.java:1030)
> >         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(
> > SSLSocketImpl.java:1057)
> >         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(
> > SSLSocketImpl.java:1041)
> >         at sun.net.www.protocol.https.HttpsClient.afterConnect(
> > HttpsClient.java:402)
> >         at
> > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> > AbstractDelegateHttpsURLConnection.java:
> > 166)
> >         at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> > HttpURLConnection.java:857)
> >         at
> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream
> > (HttpsURLConnectionImpl.java:230)
> >         at
> >
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching
> > (HTTPConduit.java:1787)
> >
> >         at
> >
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite
> (
> > HTTPConduit.java:1755)
> >         at org.apache.cxf.io.AbstractWrappedOutputStream.write(
> > AbstractWrappedOutputStream.java:42)
> >         at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:96)
> >         at com.ctc.wstx.sw.BufferingXmlWriter.flush(
> BufferingXmlWriter.java
> > :214)
> >         at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java
> :311)
> >
> > Any ideas?  I'm about at the end of my rope... I cannot for the life of
> me
> > get this to work.  I did try to send a request without SSL just so I
> could
> > see what it's sending, if I simply comment out the SSL config in my
> cxf.xml,
> > then CXF will start complaining that it can't serialize my jaxb objects
> > because of a missing XMLRoot which makes no sense because with SSL
> turned
> > on, it magically has no problem serializing my JAXB objects.  Also, with
> SSL
> > off, all I get in TCPMon is just some headers sent to the webservice
> with no
> > soap in the body.  Does anyone know why this is so screwy?  I'm using
> 2.0.1:
> >
> > Caused by: javax.xml.bind.MarshalException
> >  - with linked exception:
> > [com.sun.istack.SAXException2: unable to marshal type "
> > testnotification.NotificationInfo" as an element b
> > ecause it is missing an @XmlRootElement annotation]
> >         at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> > MarshallerImpl.java:295)
> >         at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> > MarshallerImpl.java:221)
> >         at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> > AbstractMarshallerImpl.java:70)
> >         at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(
> > JAXBEncoderDecoder.java:187)
> >         at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(
> > JAXBEncoderDecoder.java:156)
> >         ... 54 more
> > Caused by: com.sun.istack.SAXException2: unable to marshal type "
> > testnotification.NotificationInfo" as an
> >  element because it is missing an @XmlRootElement annotation
> >         at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(
> > XMLSerializer.java:225)
> >         at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> > ClassBeanInfoImpl.java:267)
> >         at
> >
> com.sun.xml.bind.v2.runtime.property.SingleReferenceNodeProperty.serializeBody
> > (SingleReferenceNodeProperty.jav
> > a:74)
> >         at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:286)
> >         at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:619)
> >         at
> >
> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody
> > (SingleElementNodeProperty.java:11
> > 3)
> >         at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:286)
> >         at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:619)
> >         at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(
> > ElementBeanInfoImpl.java:93)
> >         at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(
> > ElementBeanInfoImpl.java:127)
> >         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody
> (
> > ElementBeanInfoImpl.java:244)
> >         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot
> (
> > ElementBeanInfoImpl.java:251)
> >         at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot
> (
> > ElementBeanInfoImpl.java:33)
> >         at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> > XMLSerializer.java:461)
> >         at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> > MarshallerImpl.java:292)
> >
> >
>

Reply via email to