I recommend patching your own version of SimpleSoapClient its the easiest solution. This would also allow you to use HttpClient directly.
If you are using Muse within a war you can simply use the classes dir to override the definition, just ensure you maintain binary compatibility of the interfaces. On Wed, Mar 18, 2009 at 11:04 PM, Satyavrat A. Prabhune <[email protected]> wrote: > Thanks for your response. > > > So looks like I would have to do following: > 1. Write MyResourceClient that will extend AbstractResourceClient. How does > Muse know about MyResourceClient? How can I register it? > 2. Use code in SimpleSoapClient similar to the one noted in patch > (https://issues.apache.org/jira/secure/attachment/12356606/muse-223-patch.txt). > We are on Muse 2.2.0. But file noted in patch link is not available in > 2..2.0. > > Thanks. > > > > > ________________________________ > From: Chris Twiner <[email protected]> > To: [email protected] > Sent: Wednesday, March 18, 2009 1:01:16 PM > Subject: Re: Notification fails in secure mode > > hiya, > > Muse by default does not use httplient, but normal/simple urlconnections. > > https://issues.apache.org/jira/browse/MUSE-223 > > Depending on your needs you can implement your own SoapClient and and > c+p your particular isolation layer (osgi, soapmini j2ee, axis2) to > supply an HttpClient based implementation. > > cheers, > Chris > > On Wed, Mar 18, 2009 at 8:49 PM, Satyavrat A. Prabhune > <[email protected]> wrote: >> Hi, >> >> I am using Muse 2.2.0 for generating notifications. >> >> When consumer registers with "http" address for callback notification, >> notifications go through as expected. But when consumer registers with >> "https" address, notification fails on server side with following message in >> muse.log: >> >> ======= >> INFO: There was an error while processing a request: >> >> java.lang.RuntimeException: Unexpected error: >> java.security.InvalidAlgorithmParameterException: the trustAnchors parameter >> must be non-empty >> >> >> org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClient.java:298) >> >> org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClient.java:254) >> >> org.apache.muse.ws.notification.remote.NotificationConsumerClient.notify(NotificationConsumerClient.java:99) >> >> org.apache.muse.ws.notification.impl.SimpleSubscriptionManager.publish(SimpleSubscriptionManager.java:267) >> >> org.apache.muse.ws.notification.impl.SimpleNotificationProducer.publish(SimpleNotificationProducer.java:445) >> >> org.apache.muse.ws.notification.impl.SimpleNotificationProducer.publish(SimpleNotificationProducer.java:420) >> >> com.mycompany.api.impl.APINotificationProducer.publish(APINotificationProducer.java:171) >> ======= >> >> I have registered my socket factory using following code: >> Protocol myHttps = new Protocol("https", >> MyHttpsSocketFactory.getInstance(), 443); >> Protocol.registerProtocol("https", myHttps); >> >> I tested secure call to tomcat on consumer machine using following code and >> it works as expected (so there is no issue with certificate and certificate >> store): >> HttpClient httpclient = new HttpClient(); >> GetMethod httpget = new GetMethod("https://tsbu-ctmpc2:8443/"); >> try { >> init(); // register socket factory. >> httpclient.executeMethod(httpget); >> System.out.println("responser=" + httpget.getStatusLine()); >> } catch(Exception ex) { >> System.out.println(ex); >> ex.printStackTrace(); >> } finally { >> httpget.releaseConnection(); >> } >> >> Any pointers on how to resolve this? >> >> Thanks. >> >> >> >> > > > >
