You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "juan.velez" <ju...@areva-td.com> on 2008/09/05 23:31:22 UTC

Trouble with services having multiple methods/operations

I had understood that a SEI could have multiple methods and the correct
method is chosen according to the soap action found in the Request Header. I
am using a Java first approach but when I try two different requests, one
addresses for each method/operation, both are handled by the same method
operation (in this case exportCmiModelDataV2).

wsdl

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ExportRequestService"
targetNamespace="http://www.areva.com/mmi/wsdl"
xmlns:ns1="http://www.areva.com/mmi/xml"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.areva.com/mmi/wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:types>
    <schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://www.areva.com/mmi/xml"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:mmi="http://www.areva.com/mmi/xml">
      <complexType name="ExportRequestType">
        <sequence>
          <element name="Application" type="string"/>
          <element name="Environment" type="string"/>
          <element name="FilePath" type="string"/>
          <element name="CSMRequestId" type="string"/>
        </sequence>
      </complexType>
      <element name="ExportRequest" type="mmi:ExportRequestType"/>
    </schema>
  </wsdl:types>
  <wsdl:message name="processExport">
    <wsdl:part element="ns1:ExportRequest" name="request"/>
  </wsdl:message>
  <wsdl:message name="processExportV2">
    <wsdl:part element="ns1:ExportRequest" name="request"/>
  </wsdl:message>
  <wsdl:portType name="ExportRequestPortType">
    <wsdl:operation name="processExport">
      <wsdl:input message="tns:processExport" name="processExport"/>
    </wsdl:operation>
    <wsdl:operation name="processExportV2">
      <wsdl:input message="tns:processExportV2" name="processExportV2"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ExportRequestServiceSoapBinding"
type="tns:ExportRequestPortType">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="processExport">
      <soap:operation soapAction="processExport" style="document"/>
      <wsdl:input name="processExport">
        <soap:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
    <wsdl:operation name="processExportV2">
      <soap:operation soapAction="processExportV2" style="document"/>
      <wsdl:input name="processExportV2">
        <soap:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ExportRequestService">
    <wsdl:port binding="tns:ExportRequestServiceSoapBinding"
name="ExportRequestPort">
      <soap:address location="http://localhost:8080/mmi/services/export"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

service

package com.arevatd.mmi.business.services;

import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

import com.areva.mmi.xml.ExportRequestType;

@WebService(name="ExportRequestPortType",
            targetNamespace="http://www.areva.com/mmi/wsdl")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface CmiModelDataExportWs {
    /**
     * The actual operation for this web service: perform an export of CMI
Model Data
     * 
     * @param request The Request to export a e-terrasource export project 
     */
    @WebMethod(operationName = "processExport", action = "processExport")
    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
    @Oneway()
    public void exportCmiModelData(
        @WebParam(targetNamespace = "http://www.areva.com/mmi/xml",
                  partName="request",
                  name = "ExportRequest")
        ExportRequestType request);
    
    @WebMethod(operationName = "processExportV2", action =
"processExportV2")
    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
    @Oneway()
    public void exportCmiModelDataV2(
        @WebParam(targetNamespace = "http://www.areva.com/mmi/xml",
                  partName="request",
                  name = "ExportRequest")
        ExportRequestType request);
}

service impl

package com.arevatd.mmi.business.services.support;

import java.util.logging.Logger;

import javax.jws.WebService;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPFault;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPFaultException;

import com.arevatd.mmi.business.services.CmiModelDataExportWs;

import com.areva.mmi.xml.ExportRequestType;


@WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
            name="ExportRequestPortType",
            portName="ExportRequestPort",
            serviceName="ExportRequestService",
            targetNamespace="http://www.areva.com/mmi/wsdl")
@BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
    private final Logger logger =
Logger.getLogger(this.getClass().getName());

    public void exportCmiModelData(ExportRequestType request) {
        logger.info("Application=" + request.getApplication());
        logger.info("Environment=" + request.getEnvironment());
        logger.info("FilePath=" + request.getFilePath());
        logger.info("CSMRequestId=" + request.getCSMRequestId());
        
        try {
            SOAPFactory soapFactory = SOAPFactory.newInstance();
            SOAPFault fault = soapFactory.createFault("Hello",
                new QName("http://schemas.xmlsoap.org/soap/envelope/",
"Client"));
            fault.setFaultString("Juan");

            throw new SOAPFaultException(fault);
        } catch(SOAPException se) {
        }
    }

    public void exportCmiModelDataV2(ExportRequestType request) {
        logger.info("V2Application=" + request.getApplication());
        logger.info("V2Environment=" + request.getEnvironment());
        logger.info("V2FilePath=" + request.getFilePath());
        logger.info("V2CSMRequestId=" + request.getCSMRequestId());
        
        try {
            SOAPFactory soapFactory = SOAPFactory.newInstance();
            SOAPFault fault = soapFactory.createFault("Hello",
                new QName("http://schemas.xmlsoap.org/soap/envelope/",
"Client"));
            fault.setFaultString("V2Juan");

            throw new SOAPFaultException(fault);
        } catch(SOAPException se) {
        }
    }
}

 request1 

Host: localhost:8080
Content-Length: 427
SOAPAction: "processExport"
User-Agent: Jakarta Commons-HttpClient/3.0.1
Content-Type: text/xml;charset=UTF-8

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://www.areva.com/mmi/xml">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ExportRequest>
         <ns:Application>?</ns:Application>
         <ns:Environment>?</ns:Environment>
         <ns:FilePath>?</ns:FilePath>
         <ns:CSMRequestId>?</ns:CSMRequestId>
      </ns:ExportRequest>
   </soapenv:Body>
</soapenv:Envelope>

 request2 

Host: localhost:8080
Content-Length: 427
SOAPAction: "processExportV2"
User-Agent: Jakarta Commons-HttpClient/3.0.1
Content-Type: text/xml;charset=UTF-8

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://www.areva.com/mmi/xml">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ExportRequest>
         <ns:Application>?</ns:Application>
         <ns:Environment>?</ns:Environment>
         <ns:FilePath>?</ns:FilePath>
         <ns:CSMRequestId>?</ns:CSMRequestId>
      </ns:ExportRequest>
   </soapenv:Body>
</soapenv:Envelope>
-- 
View this message in context: http://www.nabble.com/Trouble-with-services-having-multiple-methods-operations-tp19339853p19339853.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: Trouble with services having multiple methods/operations

Posted by Daniel Kulp <dk...@apache.org>.
Just FYI....

This is probably a bug and should be logged and fixed.   Probably a bug in the 
SoapActionInInterceptor if you want to dig in and provide a patch.

HOWEVER, I wouldn't categorize it as a high priority issue for CXF as such a 
wsdl is NOT WSI-Basic Profile compliant.   WSI-BP specifically states that 
the operations need to be unique within the soap:body, which yours is not due 
to them both having ns:ExportRequest.

Dan



On Friday 05 September 2008 5:31:22 pm juan.velez wrote:
> I had understood that a SEI could have multiple methods and the correct
> method is chosen according to the soap action found in the Request Header.
> I am using a Java first approach but when I try two different requests, one
> addresses for each method/operation, both are handled by the same method
> operation (in this case exportCmiModelDataV2).
>
> wsdl
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="ExportRequestService"
> targetNamespace="http://www.areva.com/mmi/wsdl"
> xmlns:ns1="http://www.areva.com/mmi/xml"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://www.areva.com/mmi/wsdl"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <wsdl:types>
>     <schema attributeFormDefault="unqualified"
> elementFormDefault="qualified"
> targetNamespace="http://www.areva.com/mmi/xml"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:mmi="http://www.areva.com/mmi/xml">
>       <complexType name="ExportRequestType">
>         <sequence>
>           <element name="Application" type="string"/>
>           <element name="Environment" type="string"/>
>           <element name="FilePath" type="string"/>
>           <element name="CSMRequestId" type="string"/>
>         </sequence>
>       </complexType>
>       <element name="ExportRequest" type="mmi:ExportRequestType"/>
>     </schema>
>   </wsdl:types>
>   <wsdl:message name="processExport">
>     <wsdl:part element="ns1:ExportRequest" name="request"/>
>   </wsdl:message>
>   <wsdl:message name="processExportV2">
>     <wsdl:part element="ns1:ExportRequest" name="request"/>
>   </wsdl:message>
>   <wsdl:portType name="ExportRequestPortType">
>     <wsdl:operation name="processExport">
>       <wsdl:input message="tns:processExport" name="processExport"/>
>     </wsdl:operation>
>     <wsdl:operation name="processExportV2">
>       <wsdl:input message="tns:processExportV2" name="processExportV2"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="ExportRequestServiceSoapBinding"
> type="tns:ExportRequestPortType">
>     <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="processExport">
>       <soap:operation soapAction="processExport" style="document"/>
>       <wsdl:input name="processExport">
>         <soap:body use="literal"/>
>       </wsdl:input>
>     </wsdl:operation>
>     <wsdl:operation name="processExportV2">
>       <soap:operation soapAction="processExportV2" style="document"/>
>       <wsdl:input name="processExportV2">
>         <soap:body use="literal"/>
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="ExportRequestService">
>     <wsdl:port binding="tns:ExportRequestServiceSoapBinding"
> name="ExportRequestPort">
>       <soap:address location="http://localhost:8080/mmi/services/export"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
>
> service
>
> package com.arevatd.mmi.business.services;
>
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
>
> import com.areva.mmi.xml.ExportRequestType;
>
> @WebService(name="ExportRequestPortType",
>             targetNamespace="http://www.areva.com/mmi/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI
> Model Data
>      *
>      * @param request The Request to export a e-terrasource export project
>      */
>     @WebMethod(operationName = "processExport", action = "processExport")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://www.areva.com/mmi/xml",
>                   partName="request",
>                   name = "ExportRequest")
>         ExportRequestType request);
>
>     @WebMethod(operationName = "processExportV2", action =
> "processExportV2")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelDataV2(
>         @WebParam(targetNamespace = "http://www.areva.com/mmi/xml",
>                   partName="request",
>                   name = "ExportRequest")
>         ExportRequestType request);
> }
>
> service impl
>
> package com.arevatd.mmi.business.services.support;
>
> import java.util.logging.Logger;
>
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
>
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
>
> import com.areva.mmi.xml.ExportRequestType;
>
>
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDa
>taExportWs", name="ExportRequestPortType",
>             portName="ExportRequestPort",
>             serviceName="ExportRequestService",
>             targetNamespace="http://www.areva.com/mmi/wsdl")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger =
> Logger.getLogger(this.getClass().getName());
>
>     public void exportCmiModelData(ExportRequestType request) {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("FilePath=" + request.getFilePath());
>         logger.info("CSMRequestId=" + request.getCSMRequestId());
>
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/",
> "Client"));
>             fault.setFaultString("Juan");
>
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
>
>     public void exportCmiModelDataV2(ExportRequestType request) {
>         logger.info("V2Application=" + request.getApplication());
>         logger.info("V2Environment=" + request.getEnvironment());
>         logger.info("V2FilePath=" + request.getFilePath());
>         logger.info("V2CSMRequestId=" + request.getCSMRequestId());
>
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/",
> "Client"));
>             fault.setFaultString("V2Juan");
>
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }
>
>  request1
>
> Host: localhost:8080
> Content-Length: 427
> SOAPAction: "processExport"
> User-Agent: Jakarta Commons-HttpClient/3.0.1
> Content-Type: text/xml;charset=UTF-8
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns="http://www.areva.com/mmi/xml">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ns:ExportRequest>
>          <ns:Application>?</ns:Application>
>          <ns:Environment>?</ns:Environment>
>          <ns:FilePath>?</ns:FilePath>
>          <ns:CSMRequestId>?</ns:CSMRequestId>
>       </ns:ExportRequest>
>    </soapenv:Body>
> </soapenv:Envelope>
>
>  request2
>
> Host: localhost:8080
> Content-Length: 427
> SOAPAction: "processExportV2"
> User-Agent: Jakarta Commons-HttpClient/3.0.1
> Content-Type: text/xml;charset=UTF-8
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns="http://www.areva.com/mmi/xml">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ns:ExportRequest>
>          <ns:Application>?</ns:Application>
>          <ns:Environment>?</ns:Environment>
>          <ns:FilePath>?</ns:FilePath>
>          <ns:CSMRequestId>?</ns:CSMRequestId>
>       </ns:ExportRequest>
>    </soapenv:Body>
> </soapenv:Envelope>



-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog

Re: Trouble with services having multiple methods/operations

Posted by Christian Schneider <ch...@die-schneider.net>.
How do you setup the server? Can you post your config, Server init code? 
>From the soap requests you posted I would say your client works 
correctly as it sets the SOAPAction. What I suspect is that you setup 
your server by only referencing the implementation. You should also 
reference the interface:
serviceClass="com.arevatd.mmi.business.services.CmiModelDataExportWs"
This will make sure the Server code knows which SOAPAction should be 
dispatched to which method.

Did this help?

BTW. If you want to offer your service in an enterprise environment for 
other applications you should think about doing Contract First. In this 
case you can take a look at:
http://cwiki.apache.org/confluence/display/CXF20DOC/Defining+Contract+first+webservices+with+wsdl+generation+from+java
This Howto describes how to define your services wih Java and still have 
the benefists of contract first.

If you only use the webservices internally in your own app code first is 
all right of course.
 
Greetings

Christian


juan.velez schrieb:
> I had understood that a SEI could have multiple methods and the correct
> method is chosen according to the soap action found in the Request Header. I
> am using a Java first approach but when I try two different requests, one
> addresses for each method/operation, both are handled by the same method
> operation (in this case exportCmiModelDataV2).
>
> wsdl
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="ExportRequestService"
> targetNamespace="http://www.areva.com/mmi/wsdl"
> xmlns:ns1="http://www.areva.com/mmi/xml"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://www.areva.com/mmi/wsdl"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <wsdl:types>
>     <schema attributeFormDefault="unqualified"
> elementFormDefault="qualified"
> targetNamespace="http://www.areva.com/mmi/xml"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:mmi="http://www.areva.com/mmi/xml">
>       <complexType name="ExportRequestType">
>         <sequence>
>           <element name="Application" type="string"/>
>           <element name="Environment" type="string"/>
>           <element name="FilePath" type="string"/>
>           <element name="CSMRequestId" type="string"/>
>         </sequence>
>       </complexType>
>       <element name="ExportRequest" type="mmi:ExportRequestType"/>
>     </schema>
>   </wsdl:types>
>   <wsdl:message name="processExport">
>     <wsdl:part element="ns1:ExportRequest" name="request"/>
>   </wsdl:message>
>   <wsdl:message name="processExportV2">
>     <wsdl:part element="ns1:ExportRequest" name="request"/>
>   </wsdl:message>
>   <wsdl:portType name="ExportRequestPortType">
>     <wsdl:operation name="processExport">
>       <wsdl:input message="tns:processExport" name="processExport"/>
>     </wsdl:operation>
>     <wsdl:operation name="processExportV2">
>       <wsdl:input message="tns:processExportV2" name="processExportV2"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="ExportRequestServiceSoapBinding"
> type="tns:ExportRequestPortType">
>     <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="processExport">
>       <soap:operation soapAction="processExport" style="document"/>
>       <wsdl:input name="processExport">
>         <soap:body use="literal"/>
>       </wsdl:input>
>     </wsdl:operation>
>     <wsdl:operation name="processExportV2">
>       <soap:operation soapAction="processExportV2" style="document"/>
>       <wsdl:input name="processExportV2">
>         <soap:body use="literal"/>
>       </wsdl:input>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="ExportRequestService">
>     <wsdl:port binding="tns:ExportRequestServiceSoapBinding"
> name="ExportRequestPort">
>       <soap:address location="http://localhost:8080/mmi/services/export"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
>
> service
>
> package com.arevatd.mmi.business.services;
>
> import javax.jws.Oneway;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
>
> import com.areva.mmi.xml.ExportRequestType;
>
> @WebService(name="ExportRequestPortType",
>             targetNamespace="http://www.areva.com/mmi/wsdl")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface CmiModelDataExportWs {
>     /**
>      * The actual operation for this web service: perform an export of CMI
> Model Data
>      * 
>      * @param request The Request to export a e-terrasource export project 
>      */
>     @WebMethod(operationName = "processExport", action = "processExport")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelData(
>         @WebParam(targetNamespace = "http://www.areva.com/mmi/xml",
>                   partName="request",
>                   name = "ExportRequest")
>         ExportRequestType request);
>     
>     @WebMethod(operationName = "processExportV2", action =
> "processExportV2")
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @Oneway()
>     public void exportCmiModelDataV2(
>         @WebParam(targetNamespace = "http://www.areva.com/mmi/xml",
>                   partName="request",
>                   name = "ExportRequest")
>         ExportRequestType request);
> }
>
> service impl
>
> package com.arevatd.mmi.business.services.support;
>
> import java.util.logging.Logger;
>
> import javax.jws.WebService;
> import javax.xml.namespace.QName;
> import javax.xml.soap.SOAPException;
> import javax.xml.soap.SOAPFactory;
> import javax.xml.soap.SOAPFault;
> import javax.xml.ws.BindingType;
> import javax.xml.ws.soap.SOAPFaultException;
>
> import com.arevatd.mmi.business.services.CmiModelDataExportWs;
>
> import com.areva.mmi.xml.ExportRequestType;
>
>
> @WebService(endpointInterface="com.arevatd.mmi.business.services.CmiModelDataExportWs",
>             name="ExportRequestPortType",
>             portName="ExportRequestPort",
>             serviceName="ExportRequestService",
>             targetNamespace="http://www.areva.com/mmi/wsdl")
> @BindingType(value=javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
> public class CmiModelDataExportWsImpl implements CmiModelDataExportWs {
>     private final Logger logger =
> Logger.getLogger(this.getClass().getName());
>
>     public void exportCmiModelData(ExportRequestType request) {
>         logger.info("Application=" + request.getApplication());
>         logger.info("Environment=" + request.getEnvironment());
>         logger.info("FilePath=" + request.getFilePath());
>         logger.info("CSMRequestId=" + request.getCSMRequestId());
>         
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/",
> "Client"));
>             fault.setFaultString("Juan");
>
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
>
>     public void exportCmiModelDataV2(ExportRequestType request) {
>         logger.info("V2Application=" + request.getApplication());
>         logger.info("V2Environment=" + request.getEnvironment());
>         logger.info("V2FilePath=" + request.getFilePath());
>         logger.info("V2CSMRequestId=" + request.getCSMRequestId());
>         
>         try {
>             SOAPFactory soapFactory = SOAPFactory.newInstance();
>             SOAPFault fault = soapFactory.createFault("Hello",
>                 new QName("http://schemas.xmlsoap.org/soap/envelope/",
> "Client"));
>             fault.setFaultString("V2Juan");
>
>             throw new SOAPFaultException(fault);
>         } catch(SOAPException se) {
>         }
>     }
> }
>
>  request1 
>
> Host: localhost:8080
> Content-Length: 427
> SOAPAction: "processExport"
> User-Agent: Jakarta Commons-HttpClient/3.0.1
> Content-Type: text/xml;charset=UTF-8
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns="http://www.areva.com/mmi/xml">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ns:ExportRequest>
>          <ns:Application>?</ns:Application>
>          <ns:Environment>?</ns:Environment>
>          <ns:FilePath>?</ns:FilePath>
>          <ns:CSMRequestId>?</ns:CSMRequestId>
>       </ns:ExportRequest>
>    </soapenv:Body>
> </soapenv:Envelope>
>
>  request2 
>
> Host: localhost:8080
> Content-Length: 427
> SOAPAction: "processExportV2"
> User-Agent: Jakarta Commons-HttpClient/3.0.1
> Content-Type: text/xml;charset=UTF-8
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ns="http://www.areva.com/mmi/xml">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ns:ExportRequest>
>          <ns:Application>?</ns:Application>
>          <ns:Environment>?</ns:Environment>
>          <ns:FilePath>?</ns:FilePath>
>          <ns:CSMRequestId>?</ns:CSMRequestId>
>       </ns:ExportRequest>
>    </soapenv:Body>
> </soapenv:Envelope>
>   


-- 

Christian Schneider
---
http://www.liquid-reality.de