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
