Hi Griffin

Sorry about this.. I realized that I have missed some items after trying to get 0.91 to start with the nhttp transport myself.. the steps I did were the following:
   download and extract synapse 0.91
replace axis2.xml transports section with one from trunk (http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/axis2.xml?view=markup)
   copy keystore.jks from trunk to repository/conf
copy latest synapse-nhttp-SNAPSHOT.jar from the version compiled off the trunk to the lib directory copy jakarta-httpcore-nio-4.0-alpha4-20070304.134132-5.jar jakarta-httpcore-4.0-alpha4-20070304.134132-5.jar jakarta-httpcore-niossl-4.0-alpha4-20070304.134132-2.jar to the lib directory (from http://people.apache.org/repo/m2-snapshot-repository/org/apache/httpcomponents/) delete the existing jakarta-httpcore-4.0-alpha2.jar from the lib directory
   update synapse.sh to fix the '==''s with '='

This started the SSL transport for 0.91 for me.. However I think the above would be too much for you to try.. hence I will get you a build off the trunk that I will upload tomorrow, which will help you to test the scenario that you are trying out.. we are hoping to cut the first RC for the 1.0 release by end of next week - so I think this should be ok for you.

asankha

Michael Griffin wrote:
I did this, but can't get synapse to start now.

[SynapseHTTPServer] Using the Axis2 Repository C:\Documents and
Settings\mgriffin\My
Documents\synapse-0.91-bin\synapse-0.91\bin\..\repository
org.apache.axis2.deployment.DeploymentException: Transport Receiver can not
be null for the transport http; nested exception is:
        org.apache.axis2.AxisFault: Transport Receiver can not be null for
the transport http
        at
org.apache.axis2.deployment.AxisConfigBuilder.processTransportReceivers(Axis
ConfigBuilder.java:355)
        at
org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuild
er.java:93)
        at
org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(Deplo
ymentEngine.java:690)
        at
org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(File
SystemConfigurator.java:109)
        at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationCont
ext(ConfigurationContextFactory.java:61)
        at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationCont
extFromFileSystem(ConfigurationContextFactory.java:180)
        at
org.apache.synapse.SynapseHTTPServer.main(SynapseHTTPServer.java:60)
Caused by: org.apache.axis2.AxisFault: Transport Receiver can not be null
for the transport http
        at
org.apache.axis2.engine.AxisConfiguration.addTransportIn(AxisConfiguration.j
ava:319)
        at
org.apache.axis2.deployment.AxisConfigBuilder.processTransportReceivers(Axis
ConfigBuilder.java:353)
        ... 6 more
[SynapseHTTPServer] Startup failed...

My axis2.xml is the one listed below with only the names and passwords
relative to the keystores changed.

-----Original Message-----
From: Asankha C. Perera [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 08, 2007 7:49 AM
To: [email protected]
Subject: Re: Outbound HTTPS with Client Certificate


Hi Griffin

You have combined the non-blocking http/s transports with the blocking
transports in your axis2.xml. Can you configure your transports as listed
here
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/
axis2.xml?view=markup

I think that should do the trick..
asankha

I am able to view the WSDL of the proxied service over http through synapse.
I am not using the sample services at this time.  I suspect that I have
something misconfigured :-) Thank you for your help on this.

Thanks,
Griffin

synapse.xml

<!--
  ~  Licensed to the Apache Software Foundation (ASF) under one
  ~  or more contributor license agreements.  See the NOTICE file
  ~  distributed with this work for additional information
  ~  regarding copyright ownership.  The ASF licenses this file
  ~  to you under the Apache License, Version 2.0 (the
  ~  "License"); you may not use this file except in compliance
  ~  with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing,
  ~  software distributed under the License is distributed on an
  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~  KIND, either express or implied.  See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.
  -->

<synapse xmlns="http://ws.apache.org/ns/synapse";>


    <!-- the SimpleURLRegistry allows access to a URL based resource store
such as the -->
    <!-- file system (file://) or a web server (http://) -->
    <registry provider="org.apache.synapse.registry.url.SimpleURLRegistry">
        <!-- the root property of the simple URL registry helps resolve a
resource URL as root + key -->
        <property name="root"
value="file:repository/conf/sample/resources/"/>
        <!-- all resources loaded from the URL registry would be cached for
this number of milli seconds -->
        <property name="cachableDuration" value="15000"/>
    </registry>

    <definitions>

        <endpoint name="VRAPI-1.0"
address="https://testserver.mydomain.com/1.0/MYAPI"/>
        <set-property name="MYAPI.wsdl" key="proxy/MYAPI.wsdl"/>

        <sequence name="MYAPI-In">
         <send>
            <endpoint ref="MYAPI-1.0"/>
         </send>
        </sequence>

        <sequence name="MYAPI-Out">
                <send/>
        </sequence>


    </definitions>

    <proxies>
        <proxy name="MYAPI">
                <wsdl key="MYAPI.wsdl"/>
            <target inSequence="MYAPI-In" outSequence="MYAPI-Out"/>
        </proxy>


</proxies>

  <!-- The most simple Synapse configuration -->
  <rules>
        <!-- Log all messages passing through -->
        <log level="none"/>
        <send/>
  </rules>

</synapse>

axis2.xml

<!--
  ~  Licensed to the Apache Software Foundation (ASF) under one
  ~  or more contributor license agreements.  See the NOTICE file
  ~  distributed with this work for additional information
  ~  regarding copyright ownership.  The ASF licenses this file
  ~  to you under the Apache License, Version 2.0 (the
  ~  "License"); you may not use this file except in compliance
  ~  with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing,
  ~  software distributed under the License is distributed on an
  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~  KIND, either express or implied.  See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.
  -->

<axisconfig name="AxisJava2.0">
    <!-- ================================================= -->
    <!-- Parameters -->
    <!-- ================================================= -->
    <parameter name="hotdeployment" locked="false">true</parameter>
    <parameter name="hotupdate" locked="false">false</parameter>
    <parameter name="enableMTOM" locked="false">false</parameter>
    <parameter name="enableSwA" locked="false">false</parameter>

    <!--Uncomment if you want to enable file caching for attachments -->
    <!--parameter name="cacheAttachments" locked="false">true</parameter>
    <parameter name="attachmentDIR" locked="false"></parameter>
    <parameter name="sizeThreshold" locked="false">4000</parameter-->

    <!--This will give out the timout of the configuration contexts, in
seconds-->
    <parameter name="ConfigContextTimeoutInterval"
locked="false">30</parameter>

    <!--During a fault, stacktrace can be sent with the fault message. The
following flag will control -->
    <!--that behaviour.-->
    <parameter name="sendStacktraceDetailsWithFaults"
locked="false">true</parameter>

    <!--If there aren't any information available to find out the fault
reason, we set the message of the expcetion-->
    <!--as the faultreason/Reason. But when a fault is thrown from a service
or some where, it will be -->
    <!--wrapped by different levels. Due to this the initial exception
message can be lost. If this flag-->
    <!--is set then, Axis2 tries to get the first exception and set its
message as the faultreason/Reason.-->
    <parameter name="DrillDownToRootCauseForFaultReason"
locked="false">false</parameter>


    <parameter name="Sandesha2StorageManager"
locked="false">inmemory</parameter>
    <parameter name="userName" locked="false">admin</parameter>
    <parameter name="password" locked="false">axis2</parameter>

    <!--Following params will set the proper context paths for invocations.
All the endpoints will have a commons context-->
    <!--root which can configured using the following contextRoot
parameter-->
    <parameter name="contextRoot" locked="false">ws</parameter>-->

    <!--Our HTTP endpoints can handle both REST and SOAP. Following
parameters can be used to distingiush those endpoints-->
    <!--In case of a servlet, if you change this you have to manually change
the settings of your servlet container to map this -->
    <!--context path to proper Axis2 servlets-->
    <!--<parameter name="servicePath" locked="false">services</parameter>-->
    <!--<parameter name="restPath" locked="false">rest</parameter>-->


    <!--Set the flag to true if you want to enable transport level session
mangment-->
    <parameter name="manageTransportSession"
locked="false">false</parameter>

    <!--Following two parameters will be used to handle REST in Axis2. The
default settings will make Axis2 to have two-->
    <!--different endpoints, one for REST (AxisRESTServlet) one for SOAP
message handling (AxisServlet). But following-->
    <!--parameters help to tweak the message handling of two main
servlets. -->

    <!-- If the enableRESTInAxis2MainServlet is true, then Axis2MainServlet
will handle both SOAP and REST messages -->
    <parameter name="enableRESTInAxis2MainServlet"
locked="true">false</parameter>

    <!-- Following parameter will completely disable REST handling in both
the servlets-->
    <parameter name="disableREST" locked="true">false</parameter>

    <!-- This will disable the separate servlet we have for REST
handling. -->
    <parameter name="disableSeparateEndpointForREST"
locked="true">false</parameter>

    <!-- If you have a frontend host which exposes this webservice using a
different public URL  -->
    <!-- use this parameter to override autodetected url -->
    <!--<parameter name="httpFrontendHostUrl"
locked="false">https://someotherhost/context</parameter>-->


    <!--    The way of adding listener to the system-->
    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
    <!--        <parameter name="RSS_URL"
locked="false">http://127.0.0.1/rss</parameter>-->
    <!--    </listener>-->

    <!-- ================================================= -->
    <!-- Message Receivers -->
    <!-- ================================================= -->
    <!--This is the Deafult Message Receiver for the system , if you want to
have MessageReceivers for -->
    <!--all the other MEP implement it and add the correct entry to here ,
so that you can refer from-->
    <!--any operation -->
    <!--Note : You can ovride this for particular service by adding the same
element with your requirement-->
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only";
                         class="org.apache.axis2.receivers.RawXMLINOnlyMessa
geReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out";
                         class="org.apache.axis2.receivers.RawXMLINOutMessag
eReceiver"/>
    </messageReceivers>
    <!-- ================================================= -->
    <!-- Transport Ins -->
    <!-- ================================================= -->
    <!--<transportReceiver name="http"
class="org.apache.axis2.transport.nhttp.AsyncHTTPListener"/>-->
    <transportReceiver name="http"
                       class="org.apache.axis2.transport.http.SimpleHTTPServ
er">
        <parameter name="port" locked="false">82</parameter>
    <!-- Here is the complete list of supported parameters (see example
settings further below):
        port: the port to listen on (default 6060)
        hostname:  if non-null, url prefix used in reply-to endpoint
references                                 (default null)
        originServer:  value of http Server header in outgoing messages
(default "Simple-Server/1.1")
        requestTimeout:  value in millis of time that requests can wait for
data                                (default 20000)
        requestTcpNoDelay:  true to maximize performance and minimize
latency                                   (default true)
                            false to minimize bandwidth consumption by
combining segments
        requestCoreThreadPoolSize:  number of threads available for request
processing (unless queue fills up)  (default 25)
        requestMaxThreadPoolSize:  number of threads available for request
processing if queue fills us         (default 150)
                                   note that default queue never fills up:
see HttpFactory
        threadKeepAliveTime:  time to keep threads in excess of core size
alive while inactive                  (default 180)
                              note that no such threads can exist with
default unbounded request queue
        threadKeepAliveTimeUnit:  TimeUnit of value in threadKeepAliveTime
(default SECONDS)                    (default SECONDS)
    -->
        <!-- <parameter name="hostname"
locked="false">http://fsepdf01.fsenablers.com</parameter> -->
        <!-- <parameter name="originServer"
locked="false">My-Server/1.1</parameter> -->
        <!-- <parameter name="requestTimeout"
locked="false">10000</parameter>                   -->
        <!-- <parameter name="requestTcpNoDelay"
locked="false">false</parameter>                   -->
        <!-- <parameter name="requestCoreThreadPoolSize"
locked="false">50</parameter>                      -->
        <!-- <parameter name="RequestMaxThreadPoolSize"
locked="false">100</parameter>                     -->
        <!-- <parameter name="threadKeepAliveTime"
locked="false">240000</parameter>                  -->
        <!-- <parameter name="threadKeepAliveTimeUnit"
locked="false">MILLISECONDS</parameter>            -->
    </transportReceiver>

    <!--Uncomment this and configure as appropriate for JMS transport
support, after setting up your JMS environment (e.g. ActiveMQ)
    <transportReceiver name="jms"
class="org.apache.axis2.transport.jms.JMSListener">
        <parameter name="myTopicConnectionFactory" locked="false">
                <parameter name="java.naming.factory.initial"
locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</param
eter>
                <parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>
                <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">TopicConnectionFactory</parameter>
        </parameter>

        <parameter name="myQueueConnectionFactory" locked="false">
                <parameter name="java.naming.factory.initial"
locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</param
eter>
                <parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>
                <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">QueueConnectionFactory</parameter>
        </parameter>

        <parameter name="default" locked="false">
                <parameter name="java.naming.factory.initial"
locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</param
eter>
                <parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>
                <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">QueueConnectionFactory</parameter>
        </parameter>
    </transportReceiver>-->

    <!--Uncomment if you want to have SMTP transport support-->
    <!--<transportReceiver name="mail"
class="org.apache.axis2.transport.mail.SimpleMailListener">-->
    <!--<parameter name="transport.mail.pop3.host"
locked="false">127.0.0.1</parameter>-->
    <!--<parameter name="transport.mail.pop3.user"
locked="false">axis2</parameter>-->
    <!--<parameter name="transport.mail.pop3.password"
locked="false">axis2</parameter>-->
    <!--<parameter name="transport.mail.pop3.port"
locked="false">110</parameter>-->
    <!--<parameter name="transport.mail.replyToAddress"
locked="false">[EMAIL PROTECTED]</parameter>-->
    <!--</transportReceiver>-->

    <!--<transportReceiver name="tcp"-->
                       <!--class="org.apache.axis2.transport.tcp.TCPServer">
-->
        <!--<parameter name="port" locked="false">6060</parameter>-->
        <!--If you want to give your own host address for EPR generation-->
        <!--uncommet following paramter , and set as you required.-->
        <!--<parameter name="hostname"
locked="false">tcp://myApp.com/ws</parameter>-->
    <!--</transportReceiver>-->

    <!-- ================================================= -->
    <!-- Transport Outs -->
    <!-- ================================================= -->

    <transportSender name="tcp"
                     class="org.apache.axis2.transport.tcp.TCPTransportSende
r"/>
    <transportSender name="local"
                     class="org.apache.axis2.transport.local.LocalTransportS
ender"/>
                     <!--
    <transportSender name="http"
                     class="org.apache.axis2.transport.http.CommonsHTTPTrans
portSender"/> -->
    <!--<transportSender name="http"
                     class="org.apache.axis2.transport.nhttp.AsyncHTTPSender
">
        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding"
locked="false">chunked</parameter>
    </transportSender>-->
    <!--
    <transportSender name="https"
                     class="org.apache.axis2.transport.http.CommonsHTTPTrans
portSender">
        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding"
locked="false">chunked</parameter>
    </transportSender>
    -->
    <transportSender name="http"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
        <parameter name="non-blocking" locked="false">true</parameter>
    </transportSender>
    <transportSender name="https"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
        <parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>keystore.pkcs12</Location>
                <Type>PKCS12</Type>
                <Password>password</Password>
                <KeyPassword>password</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>truststore.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
            </TrustStore>
        </parameter>
    </transportSender>

    <transportSender name="jms"
                     class="org.apache.axis2.transport.jms.JMSSender"/>

    <!-- Uncomment this one with the appropriate papameters to enable the
SMTP transport Receiver
   <transportSender name="mailto"
class="org.apache.axis2.transport.mail.MailTransportSender">
       <parameter name="transport.mail.smtp.host"
locked="false">127.0.0.1</parameter>
       <parameter name="transport.mail.smtp.user"
locked="false">axis2</parameter>
       <parameter name="transport.mail.smtp.password"
locked="false">axis2</parameter>
       <parameter name="transport.mail.smtp.port"
locked="false">25</parameter>
   </transportSender>
   -->

    <!-- ================================================= -->
    <!-- Global Modules  -->
    <!-- ================================================= -->
    <!-- Comment this to disable Addressing -->
    <module ref="addressing"/>
    <module ref="synapse"/>

    <!--Configuring module , providing parameters for modules whether they
refer or not-->
    <!--<moduleConfig name="addressing">-->
    <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
    <!--</moduleConfig>-->

    <!-- ================================================= -->
    <!-- Phases  -->
    <!-- ================================================= -->
    <phaseOrder type="InFlow">
        <!--  System pre defined phases       -->
         <phase name="Transport">
            <handler name="RequestURIBasedDispatcher"
                     class="org.apache.axis2.engine.RequestURIBasedDispatche
r">
                <order phase="Transport"/>
            </handler>
            <handler name="SOAPActionBasedDispatcher"
                     class="org.apache.axis2.engine.SOAPActionBasedDispatche
r">
                <order phase="Transport"/>
            </handler>
        </phase>
        <phase name="Security"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
            <handler name="AddressingBasedDispatcher"
                     class="org.apache.axis2.engine.AddressingBasedDispatche
r">
                <order phase="Dispatch"/>
            </handler>

            <handler name="SOAPMessageBodyBasedDispatcher"
                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDisp
atcher">
                <order phase="Dispatch"/>
            </handler>
            <handler name="InstanceDispatcher"
                     class="org.apache.axis2.engine.InstanceDispatcher">
                <order phase="Dispatch"/>
            </handler>
        </phase>
        <!--  System pre defined phases       -->
        <phase name="RMPhase"/>
        <phase name="MUPhase"/> <!-- Must Understand Header processing
phase -->
        <!--   After Postdispatch phase module author or or service author
can add any phase he want      -->
        <phase name="OperationInPhase"/>
    </phaseOrder>
    <phaseOrder type="OutFlow">
        <!--      user can add his own phases to this area  -->
        <phase name="MUPhase"/> <!-- Must Understand Header processing
phase -->
        <phase name="RMPhase"/>
        <phase name="OperationOutPhase"/>
        <!--system predefined phase-->
        <!--these phase will run irrespective of the service-->
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
    <phaseOrder type="InFaultFlow">
        <phase name="PreDispatch"/>
        <phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
            <handler name="RequestURIBasedDispatcher"
                     class="org.apache.axis2.engine.RequestURIBasedDispatche
r">
                <order phase="Dispatch"/>
            </handler>

            <handler name="SOAPActionBasedDispatcher"
                     class="org.apache.axis2.engine.SOAPActionBasedDispatche
r">
                <order phase="Dispatch"/>
            </handler>

            <handler name="AddressingBasedDispatcher"
                     class="org.apache.axis2.engine.AddressingBasedDispatche
r">
                <order phase="Dispatch"/>
            </handler>

            <handler name="SOAPMessageBodyBasedDispatcher"
                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDisp
atcher">
                <order phase="Dispatch"/>
            </handler>
            <handler name="InstanceDispatcher"
                     class="org.apache.axis2.engine.InstanceDispatcher">
                <order phase="PostDispatch"/>
            </handler>
        </phase>
        <!--      user can add his own phases to this area  -->
        <phase name="RMPhase"/>
        <phase name="MUPhase"/> <!-- Must Understand Header processing
phase -->
        <phase name="OperationInFaultPhase"/>
    </phaseOrder>
    <phaseOrder type="OutFaultFlow">
        <!--      user can add his own phases to this area  -->
        <phase name="MUPhase"/> <!-- Must Understand Header processing
phase -->
        <phase name="RMPhase"/>
        <phase name="OperationOutFaultPhase"/>
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
    </phaseOrder>
</axisconfig>


-----Original Message-----
From: Asankha C. Perera [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 07, 2007 7:47 AM
To: [email protected]
Subject: Re: Outbound HTTPS with Client Certificate


Hi Griffin

Is it possible for you to attach your synapse.xml and axis2.xml? I am
assuming you are using 0.91 with the latest nhttp code. I will try this
out shortly. It seems like your out transport in the axis2.xml is not
properly configured - so having your config file will help me.

Also to verify, your client talks to Synapse using http, and Synapse
uses https to talk to an external service. Are you using the samples
(server / client) by any chance?

asankha

Michael Griffin wrote:

asankha,

Thank you for this.  I gave it a try but I am running into some problems
that are probably just configuration related.  When I try to flow a

request

through synapse to the https endpoint I get the following message and
exception in the log.

[HttpConnection-82-1] DEBUG Axis2FlexibleMEPClient - sending [add = false]
[sec= false] [ rm = false] [ to Address: https://host.domain.com/service]
[HttpConnection-82-1] ERROR Axis2Sender - Unexpected error during Sending
messag
e onwards
java.lang.NullPointerException
        at


org.apache.axis2.description.ClientUtils.inferInTransport(ClientUtils.java:8

5)
        at


org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.ex

ecute(DynamicAxisOperation.java:228)
        at


org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPCl

ient.java:151)
        at
org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:55)
        at


org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvir

onment.java:84)
        at


org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:

143)
        at


org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediat

or.java:49)
        at


org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.

java:67)
        at


org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServi

ceMessageReceiver.java:143)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:497)
        at


org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HT

TPTransportUtils.java:326)
        at
org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:230)
        at


org.apache.axis2.transport.http.server.DefaultHttpServiceProcessor.doService

(DefaultHttpServiceProcessor.java:190)
        at
org.apache.http.protocol.HttpService.handleRequest(HttpService.java:123)
        at


org.apache.axis2.transport.http.server.DefaultHttpServiceProcessor.run(Defau

ltHttpServiceProcessor.java:262)
        at


edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run

Task(ThreadPoolExecutor.java:665)
        at


edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run

(ThreadPoolExecutor.java:690)
        at java.lang.Thread.run(Thread.java:595)

My axis2.xml in relation to transportSender is as follows:

<transportSender name="http"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
        <parameter name="non-blocking" locked="false">true</parameter>
</transportSender>
 <transportSender name="https"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
        <parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>keystore.pkcs12</Location>
                <Type>PKCS12</Type>
                <Password>password</Password>
                <KeyPassword>password</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>truststore.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
            </TrustStore>
        </parameter>
</transportSender>

I added the http sender in order to verify that my base configuration was
still operable when delegating back to http end points.  I encounter the
same problem.  Let me know if you have any suggestions.

Thanks,
Griffin
-----Original Message-----
From: Asankha C. Perera [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 06, 2007 12:02 PM
To: [email protected]
Subject: Re: Outbound HTTPS with Client Certificate


Hi Griffin

If you are using the latest nhttp transport with 0.91 of Synapse, you will
need to configure your axis2.xml to specify the https properties as shown
here ->


http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/

axis2.xml?view=markup

i.e. for outgoing https:

<transportSender name="https"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
        <parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>keystore.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
                <KeyPassword>password</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>keystore.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
            </TrustStore>
        </parameter>
    </transportSender>
The keystore is expected to contain a single certificate for your identity
and the trust store - the usual. Once this is setup, you should be able to
talk https endpoints. Make sure to import the CA certs or the certs of the
endpoints into your trust store. Now, once a Synapse configuration

attempts

to send a message to a https://.... endpoint, the https transport
configuration above would be used.

asankha



Michael Griffin wrote:
asankha,

Thank you.  I'll give it a try.   Are there any specific samples / code

that

I should reference when I set this up.  Let me know.

Thanks,
Griffin

-----Original Message-----
From: Asankha C. Perera [mailto:[EMAIL PROTECTED]
Sent: Monday, March 05, 2007 1:37 PM
To: [email protected]
Subject: Re: Outbound HTTPS with Client Certificate


Hi Griffin

Yes, this should be ready with the NIO transport enhancements we did for
HTTPS already. We do set the trust and identity stores for the
TransportSender with these enhancements. However we do not yet do
host-name verification, and this area needs some more testing.

If you would like to try this out with the new transport enhancements
and 0.91 code, I would suggest that you take a svn checkout of the
trunk, and perform a build using "mvn clean install" and drop the
nhttp.jar that gets built into your existing 0.91 installations' lib
directory. Right now we are doing some changes and cleanup on the trunk,
so I do not want you to try the latest trunk until we have stabilized
and completed the changes

Let me know if you need any more help on this

asankha

Michael Griffin wrote:

Does Synapse support using HTTPS with Client Certificates as an outbound
transport?  I would like to use Synapse to act as a gateway between my
internal applications and an third-party hosted web service requiring

HTTPS

and client certificates.  Any help or direction would be great.

Thanks,
Griffin



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--------------------------------------------------------------------- To
unsubscribe, e-mail: [EMAIL PROTECTED] For additional
commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--------------------------------------------------------------------- To
unsubscribe, e-mail: [EMAIL PROTECTED] For additional
commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to