Hi Scott,
Eveyrthing seems to work fine now, except one minor problem. When there is nothing to send as argument I am passing in null and thats throwing exception. Please look at the bold lines of my code below. I am passing in the type of the argument as javax.activation.DataHandler.class, but it still takes it as Object. See the exception after the code. Look at the 6th argument of the method. It is assuming the object type as "Object" not "javax.activation.DataHandler"
Vector params = new
Vector();
params.addElement(new
Parameter("sessionID",
long.class,
new Long(sessionID), null));
params.addElement(new Parameter("containerID",
containerID.getClass(),
new String(containerID), null));
params.addElement(new Parameter("xmlString",
xmlString.getClass(),
new String(xmlString), null));
DataSource
ds = new ByteArrayDataSource(sourceBytes,
"application/octet-stream");
DataHandler dh = new
DataHandler(ds);
params.addElement(new
Parameter("source",
javax.activation.DataHandler.class, dh, null));
//
params.addElement(new Parameter("encodedSource", encodedSource.getClass(), new
String(encodedSource), null));
params.addElement(new
Parameter("sourceFileName",
sourceFileName.getClass(), new String(sourceFileName), null));
if
(thumbBytes != null && thumbFileName!=null)
{
ds = new
ByteArrayDataSource(thumbBytes,
"application/octet-stream");
dh = new
DataHandler(ds);
params.addElement(new
Parameter("thumb",
javax.activation.DataHandler.class, dh,
null));
params.addElement(new
Parameter("thumbFileName",
thumbFileName.getClass(), new String(thumbFileName),
null));
} else
{
params.addElement(new
Parameter("thumb",
javax.activation.DataHandler.class, null,
null));
params.addElement(new
Parameter("thumbFileName",
new String().getClass(), null,
null));
}
Exception trace is as follows:
Generated fault:
Fault Code =
SOAP-ENV:Server
Fault String = Exception while handling service
request:
com.contextmedia.ip.s
ession.soap.CMISOAPContentService.uploadContentObject(long,java.lang.String,java
.lang.String,javax.activation.DataHandler,java.lang.String,java.lang.Object,java
.lang.String)
-- no signature match
java.lang.Exception: Exception while handling
service request:
com.contextmedia.
ip.session.soap.CMISOAPContentService.uploadContentObject(long,java.lang.String,
java.lang.String,javax.activation.DataHandler,java.lang.String,java.lang.Object,
java.lang.String)
-- no signature match
at
com.contextmedia.simplex.domain.content.ContentObjectUtils.uploadCont
entObjectWithAttachments(ContentObjectUtils.java:742)
at
com.contextmedia.simplex.ui.NewContentObjectDialog$DialogActionListen
er.actionPerformed(NewContentObjectDialog.java:275)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:14
45)
at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1499)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:373)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:245
)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:211)
at
java.awt.Component.processMouseEvent(Component.java:3710)
at
java.awt.Component.processEvent(Component.java:3539)
at
java.awt.Container.processEvent(Container.java:1159)
at
java.awt.Component.dispatchEventImpl(Component.java:2588)
at
java.awt.Container.dispatchEventImpl(Container.java:1208)
at
java.awt.Component.dispatchEvent(Component.java:2492)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2446
)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:2211)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:2120)
at
java.awt.Container.dispatchEventImpl(Container.java:1195)
at
java.awt.Window.dispatchEventImpl(Window.java:923)
at
java.awt.Component.dispatchEvent(Component.java:2492)
at
java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:126)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:93)
at
java.awt.Dialog.show(Dialog.java:375)
at
java.awt.Component.show(Component.java:941)
at
java.awt.Component.setVisible(Component.java:898)
at
com.contextmedia.simplex.SimplexFrame$FrameActionListener.actionPerfo
rmed(SimplexFrame.java:391)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:14
45)
at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1499)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:373)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:245
)
at
javax.swing.AbstractButton.doClick(AbstractButton.java:274)
at
javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelease
d(BasicMenuItemUI.java:882)
at
java.awt.Component.processMouseEvent(Component.java:3710)
at
java.awt.Component.processEvent(Component.java:3539)
at
java.awt.Container.processEvent(Container.java:1159)
at
java.awt.Component.dispatchEventImpl(Component.java:2588)
at
java.awt.Container.dispatchEventImpl(Container.java:1208)
at
java.awt.Component.dispatchEvent(Component.java:2492)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2446
)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:2211)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:2120)
at
java.awt.Container.dispatchEventImpl(Container.java:1195)
at
java.awt.Window.dispatchEventImpl(Window.java:923)
at
java.awt.Component.dispatchEvent(Component.java:2492)
at
java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:126)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:93)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)
Praveen
> for your exceptions. Just having the exception message makes it harder
> to understand the cause of most exceptions.
>
> This particular exception means that a ByteArrayDataSource was created
> with no data array, such as passing a null for the byte array.
>
> Scott Nichol
>
> ----- Original Message -----
> From: "Praveen Peddi" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, January 03, 2003 4:18 PM
> Subject: Re: Soap With attachments example
>
>
> > Yeah. It works now. Its my bad. Sorry about that.
> >
> > BUt I have another problem. When I execute that method, I get the
> following
> > exception.
> >
> > Caught SOAPException (SOAP-ENV:Client): No data.
> >
> > What does this mean? I double checked that my soap method exists in
> the
> > descriptor and the implementation also exists on the server side. But
> the
> > call doesn't reach the server at all.
> >
> > Praveen
> > ----- Original Message -----
> > From: "Scott Nichol" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, January 03, 2003 2:28 PM
> > Subject: Re: Soap With attachments example
> >
> >
> > > 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 = "" 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]>
> > >
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >
> >
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>