Hello,

I'm trying to get up and running with Servicemix and XFire.  I managed to
get a webservice up and exposed with Servicemix.  I can send a soap message
to from a browser and I get a correct XML response back in.  When I try to
generate a client from my Webservice interface, the wrong namespace
parameter gets generated and then servicemix spits out an error.   Here are
the applicable pieces of information, is this a bug?

Servicemix webservice error:

org.codehaus.xfire.fault.XFireFault: Parameter {
http://watergaugeservice.wsdl.flare.gse.bae.com}getWaterGaugeDatain0
exist!
       at org.codehaus.xfire.service.binding.AbstractBinding.read(
AbstractBinding.java:201)
       at org.codehaus.xfire.service.binding.DocumentBinding.readMessage(
DocumentBinding.java:32)
       at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(
SoapBodyHandler.java:42)
       at org.codehaus.xfire.handler.HandlerPipeline.invoke(
HandlerPipeline.java:131)
       at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(
DefaultEndpoint.java:64)
       at org.codehaus.xfire.transport.AbstractChannel.receive(
AbstractChannel.java:38)
       at org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.doProcess(
Jsr181ExchangeProcessor.java:111)
       at org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(
Jsr181ExchangeProcessor.java:66)
       at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
AsyncBaseLifeCycle.java:410)
       at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
BaseLifeCycle.java:43)
       at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
DeliveryChannelImpl.java:624)
       at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
AbstractFlow.java:169)
       at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
SedaFlow.java:177)
       at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(
SedaQueue.java:227)
       at org.apache.geronimo.connector.work.WorkerContext.run(
WorkerContext.java:291)
       at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
       at java.lang.Thread.run(Thread.java:595)

Client code:

String url = "http://localhost:8192/WaterGaugeService/";;

   XmlBeansServiceFactory xsf = new XmlBeansServiceFactory();
   Service serviceModel = xsf.create(WaterGaugeServicePort.class);

   WaterGaugeServicePort client =
     (WaterGaugeServicePort) new XFireProxyFactory().create(serviceModel,
url);
   return client.getWaterGaugeData("PEP");

And here is a correct soap request for your comparison to see what the
namespace is:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";
             xmlns:tns="http://watergugeservice.wsdl.flare.gse.bae.com";>
 <env:Body>
     <tns:waterGaugeRequest>PEP</tns:waterGaugeRequest>
 </env:Body>
</env:Envelope>



I hope something can shed some light on this for me.  Thanks!

Reply via email to