I am not sure if the fix ever made it to the actual builds... but an
attachment was created to the bugzilla.
This attachment has the fix. You can find the attachment at:
http://nagoya.apache.org/bugzilla/showattachment.cgi?attach_id=6993

Or read through the bugzilla and you will find the link there.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18520

The modification is in the "private void setCallParameterNames(Call call)
throws WSIFException" method.

Hope this helps...

Simon Solomon
[EMAIL PROTECTED]




                                                                           
             "Honorez Dylan"                                               
             <[EMAIL PROTECTED]                                             
             onos.be>                                                   To 
                                       <[EMAIL PROTECTED]>           
             08/20/2004 10:53                                           cc 
             AM                                                            
                                                                   Subject 
                                       RE: Dynamic Invocation of JAX-RPC   
             Please respond to         service                             
             [EMAIL PROTECTED]                                             
                  he.org                                                   
                                                                           
                                                                           
                                                                           
                                                                           




Hi,

Simon, I'm afraid I was too soon to yield yesterday. I invoked a wrong
main class which executed right. However, when I looked at my wsif.jar
this morning, I found out my WSIFOperation_ApacheAxis didn't look like
the one you gave me at all. I think you already had an updated version?
Where do I find this version you gave me?

Greetings,
Dylan Honorez,
[EMAIL PROTECTED]

-----Original Message-----
From: Simon Solomon [mailto:[EMAIL PROTECTED]
Sent: donderdag 19 augustus 2004 15:37
To: [EMAIL PROTECTED]
Subject: Re: Dynamic Invocation of JAX-RPC service

I think you are experiencing the same problem indicated here:
http://marc.theaimsgroup.com/?l=wsif-user&m=107696077829674&w=2

Nirmal has updated the
"org.apache.wsif.providers.soap.apacheaxis.WSIFOperation_ApacheAxis"
class...
if you don't have/see the fix here it is (the fix starts at the
"//Nirmal
fix" line)

      /**
       * This tells AXIS the name and type of the input, return, and
output
parameters.
       */
      private void setCallParameterNames(Call call) throws WSIFException
{

            boolean wrappedStyleOp =
                  ProviderUtils.isUnwrapable(getPortTypeOperation());

            String inputNamespace;
            if (WSIFAXISConstants.USE_LITERAL.equals(getInputUse())
            && !wrappedStyleOp) {
                  inputNamespace = "";
            } else {
                  inputNamespace = getInputNamespace();
            }
            //Nirmal fix
         // assumption: need to include input namespace only for literal
         // encoding or for wrapped style operations
         if (WSIFAXISConstants.USE_LITERAL.equals(getInputUse()) ||
               wrappedStyleOp)
               inputNamespace = getInputNamespace();
         else
               inputNamespace = "";
         // end of Nirmal fix

            String outputNamespace = "";

            List soapParts;
            // style=wrapped uses the unwrapped parts
            if
(WSIFAXISConstants.AXIS_STYLE_WRAPPED.equals(operationStyle)) {
                  soapParts = inputUnwrappedSOAPParts;
            } else {
                  soapParts = inputSOAPParts;
            }

            /* If there are no attachments take the part ordering from
the
             * soap:body. If there are attachments then the soap:body
will
             * not include the attachments, so take the part ordering
from
             * the ordering of the parts in the original message.
             */
            List parts;
            if (inputMIMEParts.isEmpty()) {
                  parts = soapParts;
            } else {
                  parts =
portTypeOperation.getInput().getMessage().getOrderedParts(null);
            }
            for (Iterator i = parts.iterator(); i.hasNext(); ) {
                  Part p = (Part) i.next();
                  String partName = p.getName();
                  if
(WSIFAXISConstants.STYLE_DOCUMENT.equals(operationStyle)) {
                        QName qn = p.getElementName();
                        if (qn != null) {
                              partName = qn.getLocalPart();
                        }
                  }
                  if (!inJmsProps.containsKey(partName)) {
                        if (inputMIMEParts.contains(p) ||
soapParts.contains(p)) {
                              QName name = new QName(inputNamespace,
partName);
                              QName type = getPartType(p);
                              call.addParameter(name, type,
ParameterMode.IN);
                        }
                  }
            }

            // style=wrapped uses the unwrapped parts
            if
(WSIFAXISConstants.AXIS_STYLE_WRAPPED.equals(operationStyle)) {
                  soapParts = outputUnwrappedSOAPParts;
            } else {
                  soapParts = outputSOAPParts;
            }

            // setup the return part
            Part returnPart = null;
            if (soapParts.size() > 0) {
                  returnPart = (Part)soapParts.get(0);
            } else if (outputMIMEParts.size() > 0) {
                  returnPart = (Part)outputMIMEParts.get(0);
            }
            if (returnPart == null) {

call.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);
            } else {
                  QName type = getPartType(returnPart);
                  call.setReturnType(type);
            }

            // setup output SOAP parts
            // from 1 to skip the return part
            for (int i = 1; i < soapParts.size(); i++) {
                  Part p = (Part) soapParts.get(i);
                  QName name = new QName(outputNamespace, p.getName());
                  QName type = getPartType(p);
                  call.addParameter(name, type, ParameterMode.OUT);
            }

            // setup the output MIME parts
            // if no soap parts dont add 1st as its the return part
            int startMIMEIndex = (soapParts.size() > 0) ? 0 : 1;
            for (int i = startMIMEIndex; i < outputMIMEParts.size();
i++) {
                  Part p = (Part) outputMIMEParts.get(i);
                  QName name = new QName(outputNamespace, p.getName());
                  QName type = getPartType(p);
                  call.addParameter(name, type, ParameterMode.OUT);
            }
      }

Simon Solomon
[EMAIL PROTECTED]





             "Honorez Dylan"

             <[EMAIL PROTECTED]

             onos.be>
To
                                       <[EMAIL PROTECTED]>

             08/19/2004 07:40
cc
             AM


Subject
                                       Re: Dynamic Invocation of JAX-RPC

             Please respond to         service

             [EMAIL PROTECTED]

                  he.org













Hi all,

In addition to my mail this morning:

This is the Soap message that is generated by the AxisClient via WSIF:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <ns1:sayHello
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn:Foo">
   <ns1:String_1 xsi:type="xsd:string">Test</ns1:String_1>
  </ns1:sayHello>
 </soapenv:Body>
</soapenv:Envelope>

Here's how a standard AxisClient generates a SOAP message, which works
fine with JAX-RPC:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <ns1:sayHello
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn:Foo">
   <String_1 xsi:type="xsd:string">Dylan</String_1>
  </ns1:sayHello>
 </soapenv:Body>
</soapenv:Envelope>

I'll look further into it!

Kind Regards,
Dylan Honorez,
[EMAIL PROTECTED]
http://www.xt-i.com







Reply via email to