create a cxf configration file named cxf-proxy.xml like

<beans xmlns="*http*://www.springframework.org/schema/beans <http://www.springframework.org/schema/beans>" xmlns:xsi="*http*://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>" xmlns:*http*-conf="*http*://*cxf*.apache.org/transports/*http*/*configuration* <http://cxf.apache.org/transports/http/configuration>" xmlns:conf-sec="*http*://*cxf*.apache.org/*configuration*/security <http://cxf.apache.org/configuration/security>" xsi:schemaLocation="*http*://*cxf*.apache.org/transports/*http*/*configuration* <http://cxf.apache.org/transports/http/configuration> *http*://*cxf*.apache.org/schemas/*configuration*/*http*-conf.xsd <http://cxf.apache.org/schemas/configuration/http-conf.xsd> *http*://www.springframework.org/schema/beans <http://www.springframework.org/schema/beans> *http*://www.springframework.org/schema/beans/spring-beans-2.0.xsd <http://www.springframework.org/schema/beans/spring-beans-2.0.xsd>">

<*http*-conf:conduit name="{*yournamespaceinthewsdl* <http://www.webserviceX.NET>}youendpointinthewsdl.*http*-conduit"> <*http*-conf:client ProxyServer="proxyServerAddres" ProxyServerPort="80"/>
               <*http*-conf:proxyAuthorization>
                       <conf-sec:UserName>user</conf-sec:UserName>
                       <conf-sec:Password>password</conf-sec:Password>
               </*http*-conf:proxyAuthorization>
       </*http*-conf:conduit>
</beans>

And add busCfg="cxf-proxy.xml" attribute for cxf bc provider xbean.xml, this should work.

Regards
Freeman


Guillaume Nodet wrote:
I think Lyall was thinking about setting the parameters of a standard
HTTP proxy.
CXF support those as indicated on
http://cwiki.apache.org/CXF20DOC/client-http-transport.html.
I'm just not sure how to apply those parameters to a CXF endpoint.

On Fri, Sep 5, 2008 at 9:59 AM, Freeman Fang <[EMAIL PROTECTED]> wrote:
Hi Lyall,

I think you can use cxf bc as proxy with smx 3.2.2 release.
Please take a look at similar discussion thread[1]

[1]http://cwiki.apache.org/SM/discussion-forums.html#nabble-td18571235%7Ca18583906

Regards
Freeman

Ward, Lyall wrote:
So just so I am clear what I need to do I need to use version a snapshot
version of 3.3, 3.2.2 and 3.2.3 will not have the support I need?
If I use the cxf am I able to use the older 3.2.2? Does it have proxy
support?

Thanks,
Lyall.
-----Original Message-----
From: Guillaume Nodet [mailto:[EMAIL PROTECTED] Sent: Friday, 5 September
2008 5:41 PM
To: [email protected]
Subject: [JUNK]Re: [JUNK]Re: Soap action and wsdl forwarding.

Soap action forwarding should work with a pair of CXF consumer /
provider or a pair of HTTP endpoint using <http:soap-consumer/> and
<http:soap-provider />.
Both will require the WSDL to be set on the consumer and provider, but
you can deploy those in a single service unit.   Proxy support has
been added recently on the <http:soap-provider/> endpoint so if you
want to use those, I'd suggest you use a snapshot version of
servicemix-http.

Soap actions for the <http:endpoint/> only work by hard setting the
soap action, so as you said, it won't work for multiple web methods.

On Fri, Sep 5, 2008 at 8:40 AM, Ward, Lyall <[EMAIL PROTECTED]> wrote:

Hi again, I'm still having some trouble.

It seems I either have the choice of proxy support (from 3.3-SNAPSHOT)
or the promised (but untested) ability to have soapActions forwarded
through to the external service. Is there anyway I can have both?

Proxy

support for the servicemix-http (via jmx consolse configuration) is
available in 3.2.2 why is it no available in 3.2.3?

Also I have been able to find a method of storing then providing the
wsdl from the conusmer. I have found two versions that work, both
storing a modified wsdl file as a resource in the consumer
<http:endpoint/> and using the  wsdResource property. The wsdl I have
stored here has to be modified and the modifications need to be

either:

- Remove all services and bindings. Also remove all porttypes aside

from

the soap porttype.
- Remove all services aside from the soap one and set its
service/portname to match the service/endpoint.

When I do either of these I am able to add ?wsdl to the endpoint url

and

fetch a wsdl file. However in both cases the bindings are lost, losing
the soapAction information along with other parts of the binding
information. Even if I leave the binding in the file servicemix

appears

to remove it and replace it with a very minimal one that is not able

to

be used for my requirements.

Is there a way to prevent this modificaiton?

Thanks for your help so far,
Cheers,
Lyall.

-----Original Message-----
From: Guillaume Nodet [mailto:[EMAIL PROTECTED]
Sent: Tuesday, 26 August 2008 5:53 PM
To: [email protected]
Subject: [JUNK]Re: Soap action and wsdl forwarding.

Proxy support for the <http:provider/> and <http:soap-provider/>
endpoints is available since yesterday.
You need to download / build the latest components (or grab a snapshot
of 3.3) and use the following:

 <http:provider proxyHost="xxx" proxyPort="80" ...

On Tue, Aug 26, 2008 at 8:00 AM, Ward, Lyall <[EMAIL PROTECTED]>

wrote:

Gert,

Thank you for your reply, I am still having trouble.

I have changed my provider to match the wsdl service/endpoint

nameing.

### new provider xbean.xml
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns:http='http://servicemix.apache.org/http/1.0'
     xmlns:svcns='http://www.webserviceX.NET'>
 <http:soap-provider service='svcns:UKLocation'
               endpoint='UKLocationSoap'

locationURI='http://www.webservicex.com/uklocation.asmx'


wsdl='http://www.webservicex.com/uklocation.asmx?WSDL'

               validateWsdl="false"
               useJbiWrapper="false"
               />
</beans>

I've also upgraded to apache-servicemix-3.2.3-20080825.225502-19 and
switched my provider to a <http:soap-provider/> as you suggested.
Service assembly compiles and deploys fine, however it still fails to
discover the wsdl from the provider. Show the folloing in the debug
### Debug
DEBUG - ConsumerProcessor              - Receiving HTTP request: GET
/ukLocation-3700af92-6ef7-4a42-9d61-4d241515f715/main.wsdl HTTP/1.1
Host: bned50077171a.dhcp.bne.sap.corp:8192
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB;

rv:1.8.1.16)

Gecko/20080702 Firefox/2.0.0.16
Accept:


text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai

n;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


DEBUG - HttpComponent                  - Retrieving proxied endpoint
definition
DEBUG - EIPComponent                   - Querying service description
for


ServiceEndpoint[service={http://www.webserviceX.NET}wireTap,endpoint=370

0af92-6ef7-4a42-9d61-4d241515f715]
DEBUG - HttpComponent                  - PortType for
targetService/targetEndpoint could not be found

It does not appear to have tried to get the wsdl from the provider at
all now.

Finally the assembly no longer works as it appears the
<http:soap-provider/> is not using the proxy settings which I have

given

the servicemix-http component which are required for me to access the
external service. I'm unsure if the saopaction code is working or not
because of this.

Thanks,
Lyall.



-----Original Message-----
From: Gert Vanthienen [mailto:[EMAIL PROTECTED]
Sent: Friday, 22 August 2008 3:03 PM
To: [email protected]
Subject: [JUNK]Re: Soap action and wsdl forwarding.

Lyall,

If the information can not be retrieved from the WSDL, this usually
means that there is a mismatch between the service/endpoint name and

the

service/port names in the wsdl.  The two should match for the
http:endpoint to find what it needs.

For the SOAPAction, could you try replacing your <http:endpoint/>

with

<http:soap-provider/> with a ServiceMix 3.2.3-SNAPSHOT (available at


http://people.apache.org/repo/m2-snapshot-repository/org/apache/servicem

ix/apache-servicemix/3.2.3-SNAPSHOT/).
I have just yesterday committed a few fixes that might get this issue
resolved.

Regards,

Gert

Ward, Lyall wrote:

Hi,

I am attempting to setup what appears to be a very simple web

service

proxy using servicemix. I'm using servicemix version 3.2.2

standalone

(though eventually tomcat integration would be nice) on jvm

1.5.0_14_b03

on windows vista. The configuration I am attempting to use is using
consumer and provider binding component with a wiretap in the middle
sending a copy of the message to a metering engine.

I have a configuration of these component that works for forwarding

the

soap requests to the external service and causing the metering to be
executed. However there are 2 issues I've not been able to solve.

I am unable to use the enpoint I created to provide the wsdl file of

the

service, and I am unable to have the soapaction header from the

original

request forwarded to the external service. I have worked around this
with a static definition of the soap action, but for services that
provide multiple methods this will not work and it is not desireable

to

have a provider binding component for each method.

When I deploy the component and also when I attempt to fetch the

wsdl

I

can see an http component attempting to access the wsdl (appears

that

way to me at least) but with no success, the debug is as follows.

Is there something in the defintion of the components I am missing?

I

have a binding component and jsr181 service assembly also and the

wsdl

generation and fetching automaticlly works in that case.

Thanks in advance,
Lyall.

### on startup of the provier
DEBUG - HttpComponent                  - Port for service/endpoint

could

not be found

### on request of the wsdl
DEBUG - ConsumerProcessor              - Receiving HTTP request: GET
/UKLocation/main.wsdl HTTP/1.1
Host: mymachine.network.com:8192
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB;

rv:1.8.1.16)

Gecko/20080702 Firefox/2.0.0.16
Accept:


text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai

n;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


DEBUG - HttpComponent                  - Retrieving proxied endpoint
definition
DEBUG - EIPComponent                   - Querying service

description

for


ServiceEndpoint[service={http://www.webserviceX.NET}wireTap,endpoint=end

point]
DEBUG - EIPComponent                   - No description found for
{http://www.webserviceX.NET}wireTap:endpoint
DEBUG - JettyContextManager            - Dispatching job:
[EMAIL PROTECTED],io=1,w=true,b=false|false]
DEBUG - JettyContextManager            - Dispatching job:
[EMAIL PROTECTED],io=1,w=true,b=false|false]


### CONSUMER XBEAN.XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0";
      xmlns:ukl="http://www.webserviceX.NET";>

 <http:endpoint service="ukl:UKLocationIn"
                endpoint="soap"
                targetService="ukl:wireTap"
                targetEndpoint="endpoint"
                locationURI="http://0.0.0.0:8192/UKLocation/";
                defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
                role="consumer"
                soap="true"
                />
</beans>

### WIRE TAP XBEAN.XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:eip="http://servicemix.apache.org/eip/1.0";
      xmlns:ukl="http://www.webserviceX.NET";>

<eip:wire-tap service="ukl:wireTap" endpoint="endpoint">
 <eip:target>
   <eip:exchange-target service="ukl:UKLocation" endpoint="Soap"/>
 </eip:target>
 <eip:inListener>
   <eip:exchange-target service="ukl:events" endpoint="endpoint" />
 </eip:inListener>
</eip:wire-tap>

</beans>

### PROVIDER XBEAN.XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0";
      xmlns:ukl="http://www.webserviceX.NET";>
 <http:endpoint service="ukl:UKLocation"
           endpoint="Soap"
           role="provider"


soapAction="http://www.webserviceX.NET/ValidateUKAddress";

           locationURI="http://www.webservicex.com/uklocation.asmx";
           defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
           soap="true"
             soapVersion="1.1"

wsdlResource="http://www.webservicex.net/uklocation.asmx?wsdl";
             />
</beans>




--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/








Reply via email to