This sample that I created from you code works for me, i.e. it does not throw an NPE.
Scott Nichol import java.io.*; import java.util.*; import java.net.*; import org.w3c.dom.*; import org.xml.sax.*; import org.apache.soap.util.xml.*; import org.apache.soap.util.mime.*; import org.apache.soap.*; import org.apache.soap.transport.*; import org.apache.soap.encoding.*; import org.apache.soap.encoding.soapenc.*; import org.apache.soap.rpc.*; import org.apache.soap.messaging.*; import javax.activation.*; import javax.mail.internet.*; import javax.xml.parsers.*; public class TestAttachments { public static void main(String[] args) { try { URL url = new URL(args[0]); // Build the call. SOAPMappingRegistry smr = new SOAPMappingRegistry(); Call call = new Call(); call.setSOAPMappingRegistry(smr); call.setTargetObjectURI("urn:MyServiceName"); call.setMethodName("myMethodName"); call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); byte[] sourceBytes = new byte[0]; Vector params = new Vector(); DataSource ds = new ByteArrayDataSource(sourceBytes, "application/octet-stream"); DataHandler dh = new DataHandler(ds); params.addElement(new Parameter("source", javax.activation.DataHandler.class, dh, null)); DataSource ds2 = new ByteArrayDataSource(sourceBytes, "application/octet-stream"); DataHandler dh2 = new DataHandler(ds); params.addElement(new Parameter("thumb", javax.activation.DataHandler.class, dh2, null)); call.setParams(params); // Invoke the call. Response resp; try { resp = call.invoke(url, ""); //System.out.println("Response is: " + resp); } catch (SOAPException e) { System.err.println("Caught SOAPException"); e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } } } -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>