Willem:
thanks a lots for your help.
you are right.we do not need to add httpj:engine-factory to our spring config
file --beans.xml.
i solved this problem. i config ssl on my weblogic9.2. and i can use the client
generated from WSDL call the webservice with web security over https protocal.
but if i use the spring client ,there are some error happen. i add
-Dcxf.config.file=sslClient.xml to the client jvm arguments. but obviuosly,
sslClient.xml does not work when i use spring client.
how to use spring client to call https webserive?
thanks in advance!
Roger
--------------log ------
2007-9-21 17:27:13 org.apache.cxf.service.factory.ReflectionServiceFactoryBean
buildServiceFromClass
信息: Creating Service
{http://interfaces.service.scan.dragonfx.dell.com/}HelloWorldService from class
com.dell.dragonfx.scan.service.interfaces.HelloWorld
2007-9-21 17:27:14 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
信息: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
at $Proxy32.sayHi(Unknown Source)
at com.dell.dragonfx.scan.service.Client.main(Client.java:42)
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:474)
at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.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:169)
at $Proxy32.sayHi(Unknown Source)
at com.dell.dragonfx.scan.service.Client.main(Client.java:42)
Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
... 2 more
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:474)
at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)
... 7 more
--------sslClient------------
<?xml version="1.0" encoding="UTF-8"?>
<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://backendService.scan.dragonfx.dell.com/}HelloWorldImplPort.http-conduit">
<http:tlsClientParameters>
<sec:trustManagers>
<sec:keyStore type="JKS" password="password"
file="c:\bea\server\mykeystore"/>
</sec:trustManagers>
<sec:keyManagers keyPassword="password">
<sec:keyStore type="JKS" password="password"
file="c:\bea\server\cacerts"/>
</sec:keyManagers>
<sec:cipherSuitesFilter>
<sec:include>.*_EXPORT_.*</sec:include>
<sec:include>.*_EXPORT1024_.*</sec:include>
<sec:include>.*_WITH_DES_.*</sec:include>
<sec:include>.*_WITH_NULL_.*</sec:include>
<sec:exclude>.*_DH_anon_.*</sec:exclude>
</sec:cipherSuitesFilter>
</http:tlsClientParameters>
</http:conduit>
<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
</bean>
</beans>
-----client-bean.xml------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:sec="http://cxf.apache.org/configuration/security"
xmlns:http="http://cxf.apache.org/transports/http/configuration"
xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration"
xsi:schemaLocation="
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://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://cxf.apache.org/transports/http-jetty/configuration
http://cxf.apache.org/schemas/configuration/http-jetty.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!--
<import resource="classpath:sslClient.xml" />
-->
<bean id="client"
class="com.dell.dragonfx.scan.service.interfaces.HelloWorld"
factory-bean="clientFactory" factory-method="create" />
<bean id="clientFactory"
class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass"
value="com.dell.dragonfx.scan.service.interfaces.HelloWorld" />
<property name="address"
value="https://localhost:7002/LSPApp/services/HelloWorld" />
<property name="outInterceptors">
<list>
<bean
class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
<bean
class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<constructor-arg>
<map>
<entry key="action"
value="UsernameToken" />
<entry key="user"
value="joe" />
<entry
key="passwordType"
value="PasswordText" />
<entry
key="passwordCallbackClass"
value="com.demo.wss4j.interceptors.ClientPasswordCallback" />
</map>
</constructor-arg>
</bean>
</list>
</property>
</bean>
<!--
<http:conduit
name="{http://backendService.scan.dragonfx.dell.com/}HelloWorldImplPort.http-conduit">
<http:tlsClientParameters>
<sec:trustManagers>
<sec:keyStore type="JKS" password="password"
file="c:\bea\server\mykeystore" />
</sec:trustManagers>
<sec:keyManagers keyPassword="password">
<sec:keyStore type="JKS" password="password"
file="c:\bea\server\cacerts" />
</sec:keyManagers>
<sec:cipherSuitesFilter>
<sec:include>.*_EXPORT_.*</sec:include>
<sec:include>.*_EXPORT1024_.*</sec:include>
<sec:include>.*_WITH_DES_.*</sec:include>
<sec:include>.*_WITH_NULL_.*</sec:include>
<sec:exclude>.*_DH_anon_.*</sec:exclude>
</sec:cipherSuitesFilter>
</http:tlsClientParameters>
</http:conduit>
-->
</beans>
thanks
Roger
-----Original Message-----
From: Willem Jiang [mailto:[EMAIL PROTECTED]
Sent: 2007年9月21日 17:18
To: [email protected]
Subject: Re: Can't find the the request for
http://localhost:7001/LSPApp/services/HelloWorld's Observer
Sorry, I forget to attach the url.
It is
http://cwiki.apache.org/CXF20DOC/writing-a-service-with-spring.html
Willem.
Willem Jiang wrote:
> Hi Roger,
>
> If you want to use the https transport by leveraging the Servlet
> transport , you do not need to specify the httpj:engine-factory in
> your bean.xml.
> httpj:engine-factory only take effect if you use the jetty as your
> http transport engine.
>
> After I went through your bean.xml, I can't found any endpoint
> specification there. You did not publish any endpoint yet, so you got
> the error of
>
> "Can't find the the request for
> http://localhost:7001/LSPApp/services/HelloWorld's Observer"
>
> Please refer this [1] to publish a service without ssl transport first.
>
> Willem.
>
> [EMAIL PROTECTED] wrote:
>
>> all:
>>
>> i want to publish CXF(2.01) webservice with WSS(user token) over SSL to
>> weblogic 9.2.
>> i got this error when a client to call the service. and i donot think
>> weblogic has publish service succesfull,but there is not error happen
>> according to the console:
>>
>> 2007-9-21 9:34:54 org.apache.cxf.transport.servlet.ServletController
>> invoke
>> 警告: Can't find the the request for
>> http://localhost:7001/LSPApp/services/HelloWorld's Observer
>>
>> -----------------cxfServer.xml--------------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <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:httpj="http://cxf.apache.org/transports/http-jetty/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://cxf.apache.org/transports/http-jetty/configuration
>> http://cxf.apache.org/schemas/configuration/http-jetty.xsd
>> http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans.xsd">
>> <import resource="classpath:META-INF/cxf/cxf.xml" />
>> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>>
>> <http:destination
>> name="{http://interfaces.service.scan.dragonfx.dell.com/}HelloWorldService.HelloWorldImplPort">
>>
>> </http:destination>
>>
>> <httpj:engine-factory bus="cxf">
>> <httpj:engine port="7002">
>> <httpj:tlsServerParameters>
>> <sec:keyManagers keyPassword="password">
>> <sec:keyStore type="JKS" password="password"
>> file="c:\bea\server\mykeystore"/>
>> </sec:keyManagers>
>> <sec:trustManagers>
>> <sec:keyStore type="JKS" password="password"
>> file="c:\bea\server\cacerts"/>
>> </sec:trustManagers>
>> <sec:cipherSuitesFilter>
>> <sec:include>.*_EXPORT_.*</sec:include>
>> <sec:include>.*_EXPORT1024_.*</sec:include>
>> <sec:include>.*_WITH_DES_.*</sec:include>
>> <sec:include>.*_WITH_NULL_.*</sec:include>
>> <sec:exclude>.*_DH_anon_.*</sec:exclude>
>> </sec:cipherSuitesFilter>
>>
>> <sec:clientAuthentication want="true" required="true"/>
>>
>> </httpj:tlsServerParameters>
>> </httpj:engine>
>> </httpj:engine-factory>
>>
>> <!-- We need a bean named "cxf" -->
>>
>> </beans>
>>
>> -------------sslclient.xml------------------
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <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://interfaces.service.scan.dragonfx.dell.com/}HelloWorldImplService.HttpConduit">
>> <http:tlsClientParameters>
>>
>> <sec:trustManagers>
>> <sec:keyStore type="JKS" password="password"
>> file="c:\bea\server\mykeystore"/>
>> </sec:trustManagers>
>> <sec:keyManagers keyPassword="password">
>> <sec:keyStore type="JKS" password="password"
>> file="c:\bea\server\cacerts"/>
>> </sec:keyManagers>
>> <sec:cipherSuitesFilter>
>> <sec:include>.*_EXPORT_.*</sec:include>
>> <sec:include>.*_EXPORT1024_.*</sec:include>
>> <sec:include>.*_WITH_DES_.*</sec:include>
>> <sec:include>.*_WITH_NULL_.*</sec:include>
>> <sec:exclude>.*_DH_anon_.*</sec:exclude>
>> </sec:cipherSuitesFilter>
>>
>> </http:tlsClientParameters>
>> </http:conduit>
>>
>> <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
>> </bean>
>>
>> </beans>
>>
>>
>> thanks for any help
>>
>> Roger
>>
>>
>>
>
>