Hi Ryan, I think cxf bc should handle the ssl configuration. I am out of office for vacation so I can't do more for you now, I will investigate this issue when I am back.
Best Regards Freeman On 10/3/07, Ryan Moquin <[EMAIL PROTECTED]> wrote: > > So I think I managed to get my cxf third party client to FINALLY > initialize > without the ClassNotFoundException.. which seems to have been by renaming > my > cxf.xml and putting it into my cxfbx serviceunit (which means now I have > duplicate cfx.xml configs laying around, but what can you do) along with > the > wsdl. This appears to have left me with the problem, so is there a way to > configure ssl for servicemix to use for a cxf client? I can't see why it > would matter since it's configured in the cxf.xml: > > <component-task-result xmlns=" > http://java.sun.com/xml/ns/jbi/management-message"> > <component-name>servicemix-cxf-se</component-name> > <component-task-result-details> > <task-result-details> > <task-id>deploy</task-id> > <task-result>SUCCESS</task-result> > </task-result-details> > </component-task-result-details> > </component-task-result> > <component-task-result> > <component-name>servicemix-cxf-bc</component-name> > <component-task-result-details> > <task-result-details> > <task-id>deploy</task-id> > <task-result>FAILED</task-result> > <message-type>ERROR</message-type> > <task-status-msg> > <msg-loc-info> > <loc-token/> > <loc-message>Unable to parse result string</loc-message> > </msg-loc-info> > </task-status-msg> > <exception-info> > <nesting-level>1</nesting-level> > <loc-token/> > <loc-message>java.io.IOException: Protocol mismatch: engine's protocol is > http, the url protocol is https</loc-message> > <stack-trace><![CDATA[javax.jbi.management.DeploymentException : > java.io.IOException: Protocol mismatch: engine's protocol > is http, the url protocol is https > at org.apache.servicemix.cxfbc.CxfBcConsumer.validate( > CxfBcConsumer.java:288) > at org.apache.servicemix.common.AbstractDeployer.validate ( > AbstractDeployer.java:58) > at org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate( > BaseXBeanDeployer.java:55) > at org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy( > AbstractXBeanDeployer.java :96) > at org.apache.servicemix.common.BaseServiceUnitManager.doDeploy( > BaseServiceUnitManager.java:88) > at org.apache.servicemix.common.BaseServiceUnitManager.deploy( > BaseServiceUnitManager.java:69) > at > > org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly > ( > DeploymentService.java:508) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs( > AutoDeploymentService.java:479) > at > > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingComponents > (AutoDeploymentService.java:53 > 2) > at > > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateSharedLibrary > ( > AutoDeploymentService.java:314) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive( > AutoDeploymentService.java:251) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory( > AutoDeploymentService.java:647) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800( > AutoDeploymentService.java:60) > at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run( > AutoDeploymentService.java:611) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > Caused by: java.io.IOException: Protocol mismatch: engine's protocol is > http, the url protocol is https > at > > org.apache.cxf.transport.http_jetty.JettyHTTPServerEngineFactory.createJettyHTTPServerEngine > (JettyHTTPServerEn > gineFactory.java:175) > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.retrieveEngine ( > JettyHTTPDestination.java:104) > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.finalizeConfig( > JettyHTTPDestination.java:132) > at > > org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.createDestination > ( > JettyHTTPTransportFactory.java > :103) > at > > org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.getDestination > (JettyHTTPTransportFactory.java:83 > ) > at org.apache.cxf.endpoint.ServerImpl.initDestination ( > ServerImpl.java:90) > at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:58) > at org.apache.servicemix.cxfbc.CxfBcConsumer.validate( > CxfBcConsumer.java:282) > ... 15 more > ]]></stack-trace> > </exception-info> > </task-result-details> > </component-task-result-details> > </component-task-result> > </jbi-task-result> > </jbi-task> > > at org.apache.servicemix.jbi.framework.ManagementSupport.failure ( > ManagementSupport.java:125) > at org.apache.servicemix.jbi.framework.ManagementSupport.failure( > ManagementSupport.java:111) > at > > org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly > ( > DeploymentService.java:543) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingSAs( > AutoDeploymentService.java:479) > at > > org.apache.servicemix.jbi.framework.AutoDeploymentService.checkPendingComponents > ( > AutoDeploymentService.java:53 > 2) > at > > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateSharedLibrary > (AutoDeploymentService.java:314) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive ( > AutoDeploymentService.java:251) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory > ( > AutoDeploymentService.java:647) > at > org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800 ( > AutoDeploymentService.java:60) > at org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run( > AutoDeploymentService.java:611) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run (Timer.java:462) > > Here are my configuration files: > > <?xml version=" 1.0" encoding="UTF-8"?> > <beans xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0" > xmlns:not=" http://www.examplenotification.com/notification"> > <cxfse:endpoint> > <cxfse:pojo> > <bean id="communicationBean" class=" > proxy.communication.CommunicationServiceImpl "> > <property name="not"> > <cxfse:proxy service="not:Notification_Service" > type=" > com.examplenotification.NotificationServiceSoap" > /> > </property> > </bean> > </cxfse:pojo> > <cxfse:inInterceptors> > <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/> > </cxfse:inInterceptors> > <cxfse:outInterceptors> > <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> > </cxfse:outInterceptors> > <cxfse:inFaultInterceptors> > <bean class=" org.apache.cxf.interceptor.LoggingInInterceptor"/> > </cxfse:inFaultInterceptors> > <cxfse:outFaultInterceptors> > <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor "/> > </cxfse:outFaultInterceptors> > </cxfse:endpoint> > </beans> > > Then in my cxf.xml (which appears to be getting picked up) that seems to > be > where the problem is: > > <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://cxf.apache.org/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://cxf.apache.org/jaxws > http://cxf.apache.org/schemas/jaxws.xsd"> > > <http:conduit > name="{ > http://www.examplenotification.com/notification}Notification_ServiceSoap.http-conduit > < > http://www.examplenotification.com/notification%7DNotification_ServiceSoap.http-conduit > > > "> > <http:client MaxRetransmits="1" AllowChunking="false"/> > <http:tlsClientParameters secureSocketProtocol="SSL"> > <sec:trustManagers> > <sec:keyStore type="JKS" password="notuser" > resource="notification.jks"/> > </sec:trustManagers> > <sec:keyManagers keyPassword=""> > <sec:keyStore type="JKS" password="notpass" > resource="notification.jks"/> > </sec:keyManagers> > <sec:cipherSuitesFilter> > <sec:include>SSL_RSA_WITH_RC4_128_MD5</sec:include> > <sec:include>SSL_RSA_WITH_RC4_128_SHA</sec:include> > </sec:cipherSuitesFilter> > </http:tlsClientParameters> > </http:conduit> > <jaxws:client name="{ > http://www.examplenotification.com/notification}Notification_ServiceSoap< > http://www.examplenotification.com/notification%7DNotification_ServiceSoap > >" > createdFromAPI="true"> > <jaxws:conduitSelector> > <bean class="org.apache.cxf.endpoint.DeferredConduitSelector"/> > </jaxws:conduitSelector> > </jaxws:client> > </beans> > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0 " > xmlns:communication="urn://notification.proxy.com"> > <cxfbc:consumer wsdl="classpath:CommunicationService.wsdl" > targetEndpoint="soap" > targetService="communication:CommunicationService" > > targetInterface="communication:CommunicationServicePort"/> > <cxfbc:consumer wsdl="classpath: notification.wsdl" > targetEndpoint=" > https://wsnet.examplenotification.com/webservices/messaging.asmx" > targetService="not:Notification_Service" > targetInterface="not:Notification_ServiceSoap" > busCfg="cxf-not.xml"/> > </beans> > > On 10/1/07, Freeman Fang <[EMAIL PROTECTED]> wrote: > > > > Hi Ryan, > > > > Your exception shows that inside servicemix the cxf-se can't load > > cxf-http transport, this behavior is intended since inside servicemix > > we should use cxf-jbi transport. > > Your code can run successfully outside servicemix doesn't mean it can > > run successfully inside servicemix, the configuration is not same.The > > cxf-se shouldn't use any jetty jar IIRC. > > > > > > Basicly, when we create client inside cxf-se, something should be like > > JaxWsProxyFactoryBean cf = new JaxWsProxyFactoryBean(); > > cf.setServiceName(getService()); > > cf.setServiceClass(type); > > cf.setAddress("jbi://" + new > > IdGenerator().generateSanitizedId());// to use cxf-jbi transport > > cf.setBindingId ( > > org.apache.cxf.binding.jbi.JBIConstants.NS_JBI_BINDING);// > > to use cxf-jbi binding > > return cf.create(); > > > > But We already support client proxy now in cxf-se, from which we set > > all for you and you needn't worry the details. You can get more > > details how the client-proxy is working form [1] [2] > > > [1]http://svn.apache.org/repos/asf/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/java/org/apache/servicemix/cxfse/CxfSeClientProxyTest.java > > > > [2] > > > http://svn.apache.org/repos/asf/incubator/servicemix/trunk/deployables/serviceengines/servicemix-cxf-se/src/test/resources/org/apache/servicemix/cxfse/client-proxy.xml > > > > > > Would you please try the client-proxy in cxf-se, I believe it's the > > better way for you. > > > > Best Regards > > > > Freeman > > > > On 10/2/07, Ryan Moquin <[EMAIL PROTECTED] > wrote: > > > sorry, I meant for a 3rd party webservice... my fingers have a mind of > > their > > > own. > > > > > > On 10/1/07, Ryan Moquin <[EMAIL PROTECTED] > wrote: > > > > > > > > I'm trying to figure out if I'm going about this the wrong way > (which > > I'm > > > > sure I am)... I have a cxfse service that I'm using as an > abstraction > > to > > > > several third party related services. To do this, I generated a CXF > > > client > > > > for a 3rd party service and attempt to invoke it from my > service. The > > > > problem is, I get this error: > > > > > > > > org.apache.cxf.phase.PhaseInterceptorChain doIntercept > > > > INFO: Interceptor has thrown exception, unwinding *now* > > > > org.apache.cxf.interceptor.Fault: *No* *conduit* *initiator* *was* > > *found* > > > > * for* *the* > > > > *namepsace* http://schemas.xmlsoap.org/soap/http. > > > > at > > > > > > > org.apache.cxf.service.invoker.AbstractInvoker.invoke( > > AbstractInvoker.java:85) > > > > > > > > at > > > > org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke ( > > JAXWSMethodInvoker.java:82) > > > > > > > > at > > > > > > > org.apache.cxf.service.invoker.AbstractInvoker.invoke( > > AbstractInvoker.java:56) > > > > > > > > at > > > > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run ( > > > > ServiceInvokerInterceptor.java:56) > > > > at > > > > org.apache.cxf.workqueue.SynchronousExecutor.execute( > > > > SynchronousExecutor.java:37) > > > > at > > > > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage ( > > > > ServiceInvokerInterceptor.java:87) > > > > at > > > > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( > > > > PhaseInterceptorChain.java:206) > > > > > > > > Now, I know what the solution is to it, but the problem is.. I > already > > > > > > have my client configured correctly. When I invoke my client (it's > a > > > maven > > > > 2 project) outside of servicemix it's fine, but when I have my > service > > > > bundle it and try to use it, I get that error. I did notice that > the > > > cxfse > > > > component is missing some of the jetty jars which I initially > thought > > > might > > > > be the problem. I included them but I still have the error. Is > there > > a > > > > better way if I have a cxf client I generated to use it inside of my > > > > service? > > > > > > > > > >
