Hi Vikram,
I am trying to solve my problems. i have already posted 2 messages here, but no reply. :(. It is really frustrating now. I have tried different ways to create the email body from the doc file. but whenever the diffent application object it returned, i got following error.
org.jinterop.dcom.common.JIException: The object invoked has disconnected from its clients. [0x80010108]
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:797)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:753)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:209)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:114)
at org.jinterop.dcom.win32.JIDispatchImpl.getIDsOfNames(JIDispatchImpl.java:101)
at org.jinterop.dcom.win32.JIDispatchImpl.put(JIDispatchImpl.java:383)
For example: when i tried MailItem.GetInspector.WordEditor which returns word document object (not related to outlook) i am not able to call any of it's methods. similarly when i tried to use Document.MailEnevelope.Item which returns Mail Item (not related to word). i got the same above error.
Is this a bug? or i need to do casting or something other to get the object properly? Is this a session problem? Do i need to open two simultaneous sessions for both applications outlook and word?
Please help me. I am stuck. I am trying to solve this issue from two weeks.......
Hope i get solution ASAP...
Thanks,
Ads.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi All,
Have anyone looked at my problem?. Please help me out. my code is:
JIVariant var = dpMail.get("GetInspector");
IJIDispatch insp = (IJIDispatch)
var.getObjectAsComObject(unknown);
JIVariant var3 = dpMail.callMethodA("FormDescription");
IJIDispatch desc = (IJIDispatch) var3.getObjectAsComObject(unknown);
desc.put("UseWordMail", new JIVariant(true));
JIVariant prop = insp.callMethodA("IsWordMail");
System.out.println("Word Mail ? :" +prop.getObjectAsBoolean()); System.out.println("Editor type" + insp.get("EditorType").getObjectAsInt());
JIVariant var1 = insp.get("WordEditor");
System.out.println("Is null :"+var1.isNull());
IJIDispatch editor =(IJIDispatch) var1.getObjectAsComObject(unknown);
System.out.println("Type......"+editor.get("Type").getObjectAsInt());
And I am getting following error:
Word Mail ? :true
Editor type4
Is null :false
org.jinterop.dcom.common.JIException: The object invoked has disconnected from its clients. [0x80010108]
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:797)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:753)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:209)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:114)
at org.jinterop.dcom.win32.JIDispatchImpl.getIDsOfNames(JIDispatchImpl.java:101)
at org.jinterop.dcom.win32.JIDispatchImpl.get(JIDispatchImpl.java:416)
.
.
.
Caused by: rpc.FaultException: Received fault. (unknown)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:138)
at rpc.Stub.call(Stub.java:112)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:793)
... 9 more
Please help me. Am i missing out something?
Thanks,
Ads.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
public static final int int_olMailItem = 0;
IJIDispatch dpNameSpace;
private IJIDispatch dpFolders;
private final int DRAFT_FOLDER = 1;
IJIComObject unknown;
JIVariant[] vaMail = dpFolderitems.callMethodA("Add",
new Object[] { new JIVariant(int_olMailItem) });
IJIDispatch dpMail = (IJIDispatch) (vaMail[0])
.getObjectAsComObject(dpFolderitems);
dpMail.put("To", new JIVariant("adscools@yahoo.com"));
dpMail.put("CC", new JIVariant("adscools@yahoo.com"));
dpMail.put("BCC", new JIVariant("adscools@yahoo.com"));
dpMail.put("Subject", new JIVariant("Hello"));
OutlookApp app = new OutlookApp();
app.createMail();
}
}
And the error console screen:
Word Mail ? :true
Editor type4
Is null :false
org.jinterop.dcom.common.JIException: The object invoked has disconnected from its clients. [0x80010108]
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:797)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:753)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:209)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:114)
at org.jinterop.dcom.win32.JIDispatchImpl.getIDsOfNames(JIDispatchImpl.java:101)
at org.jinterop.dcom.win32.JIDispatchImpl.get(JIDispatchImpl.java:416)
at trial.OutlookApp.createMail(OutlookApp.java:92)
at trial.OutlookApp.main(OutlookApp.java:142)
Caused by: rpc.FaultException: Received fault. (unknown)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:138)
at rpc.Stub.call(Stub.java:112)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:793)
... 7 more
Please help me...
Thanks,
Ads.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
We have removed all errors known about memory management. As far as thread safety and concurrent access are concerned I am not aware of any (ever).
Again, we CANNOT provide any support for any older version.
best regards,
Vikram
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Vikram,
I am trying to solve my problems. i have already posted 2 messages here, but no reply. :(. It is really frustrating now. I have tried different ways to create the email body from the doc file. but whenever the diffent application object it returned, i got following error.
org.jinterop.dcom.common.JIException: The object invoked has disconnected from its clients. [0x80010108]
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:797)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:753)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:209)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:114)
at org.jinterop.dcom.win32.JIDispatchImpl.getIDsOfNames(JIDispatchImpl.java:101)
at org.jinterop.dcom.win32.JIDispatchImpl.put(JIDispatchImpl.java:383)
For example: when i tried MailItem.GetInspector.WordEditor which returns word document object (not related to outlook) i am not able to call any of it's methods. similarly when i tried to use Document.MailEnevelope.Item which returns Mail Item (not related to word). i got the same above error.
Is this a bug? or i need to do casting or something other to get the object properly? Is this a session problem? Do i need to open two simultaneous sessions for both applications outlook and word?
Please help me. I am stuck. I am trying to solve this issue from two weeks.......
Hope i get solution ASAP...
Thanks,
Ads.
Hi All,
Have anyone looked at my problem?. Please help me out. my code is:
JIVariant var = dpMail.get("GetInspector");
IJIDispatch insp = (IJIDispatch)
var.getObjectAsComObject(unknown);
JIVariant var3 = dpMail.callMethodA("FormDescription");
IJIDispatch desc = (IJIDispatch) var3.getObjectAsComObject(unknown);
desc.put("UseWordMail", new JIVariant(true));
JIVariant prop = insp.callMethodA("IsWordMail");
System.out.println("Word Mail ? :" +prop.getObjectAsBoolean()); System.out.println("Editor type" + insp.get("EditorType").getObjectAsInt());
JIVariant var1 = insp.get("WordEditor");
System.out.println("Is null :"+var1.isNull());
IJIDispatch editor =(IJIDispatch) var1.getObjectAsComObject(unknown);
System.out.println("Type......"+editor.get("Type").getObjectAsInt());
And I am getting following error:
Word Mail ? :true
Editor type4
Is null :false
org.jinterop.dcom.common.JIException: The object invoked has disconnected from its clients. [0x80010108]
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:797)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:753)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:209)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:114)
at org.jinterop.dcom.win32.JIDispatchImpl.getIDsOfNames(JIDispatchImpl.java:101)
at org.jinterop.dcom.win32.JIDispatchImpl.get(JIDispatchImpl.java:416)
.
.
.
Caused by: rpc.FaultException: Received fault. (unknown)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:138)
at rpc.Stub.call(Stub.java:112)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:793)
... 9 more
Please help me. Am i missing out something?
Thanks,
Ads.
Hi,
Please show me your complete code from session formation onwards.
thanks,
best regards,
Vikram
Hi Vikram,
Here is my code.
package trial;
import java.io.IOException;
import java.util.ArrayList;
import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.common.JISystem;
import org.jinterop.dcom.core.IJIComObject;
import org.jinterop.dcom.core.JIComServer;
import org.jinterop.dcom.core.JIProgId;
import org.jinterop.dcom.core.JISession;
import org.jinterop.dcom.core.JIVariant;
import org.jinterop.dcom.win32.IJIDispatch;
import org.jinterop.dcom.win32.IJITypeInfo;
import org.jinterop.dcom.win32.JIComFactory;
public class OutlookApp {
public static final int int_olMailItem = 0;
IJIDispatch dpNameSpace;
private IJIDispatch dpFolders;
private final int DRAFT_FOLDER = 1;
IJIComObject unknown;
public OutlookApp() {
try {
JISystem.setInBuiltLogHandler(false);
JISystem.getLogger();
JISession session = JISession.createSession("", "", "");
JIComServer comServer = new JIComServer(JIProgId.valueOf(session,
"outlook.Application"), "localhost", session);
unknown = comServer.createInstance();
IJIDispatch dispatch = (IJIDispatch) JIComFactory
.createCOMInstance(JIComFactory.IID_IDispatch, unknown);
IJITypeInfo typeInfo = dispatch.getTypeInfo(0);
typeInfo.getFuncDesc(0);
JIVariant[] vaNamespace = dispatch.callMethodA("GetNamespace",
new Object[] { new JIVariant("MAPI") });
dpNameSpace = (IJIDispatch) (vaNamespace[0])
.getObjectAsComObject(unknown);
JIVariant vafolders = dpNameSpace.get("Folders");
dpFolders = (IJIDispatch) (vafolders)
.getObjectAsComObject(dpNameSpace);
} catch (JIException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void createMail() {
try {
ArrayList<String> folderIds = getFolderIds();
String StrFolderId = folderIds.get(DRAFT_FOLDER);
JIVariant[] vaSpecificfolder = dpNameSpace.callMethodA(
"GetFolderFromID",
new Object[] { new JIVariant(StrFolderId) });
IJIDispatch dpSpecificFolder = (IJIDispatch) (vaSpecificfolder[0])
.getObjectAsComObject(dpNameSpace);
JIVariant vaFolderitems = dpSpecificFolder.get("Items");
IJIDispatch dpFolderitems = (IJIDispatch) (vaFolderitems)
.getObjectAsComObject(dpSpecificFolder);
JIVariant[] vaMail = dpFolderitems.callMethodA("Add",
new Object[] { new JIVariant(int_olMailItem) });
IJIDispatch dpMail = (IJIDispatch) (vaMail[0])
.getObjectAsComObject(dpFolderitems);
dpMail.put("To", new JIVariant("adscools@yahoo.com"));
dpMail.put("CC", new JIVariant("adscools@yahoo.com"));
dpMail.put("BCC", new JIVariant("adscools@yahoo.com"));
dpMail.put("Subject", new JIVariant("Hello"));
JIVariant var = dpMail.get("GetInspector");
IJIDispatch insp = (IJIDispatch) var.getObjectAsComObject(unknown);
JIVariant var3 = dpMail.callMethodA("FormDescription");
IJIDispatch desc = (IJIDispatch) var3.getObjectAsComObject(unknown);
desc.put("UseWordMail", new JIVariant(true));
JIVariant prop = insp.callMethodA("IsWordMail");
System.out.println("Word Mail ? :" + prop.getObjectAsBoolean());
System.out.println("Editor type"
+ insp.get("EditorType").getObjectAsInt());
JIVariant var1 = insp.get("WordEditor");
System.out.println("Is null :" + var1.isNull());
IJIDispatch editor = (IJIDispatch) var1
.getObjectAsComObject(unknown);
System.out.println("Type......"
+ editor.get("Type").getObjectAsInt());
} catch (JIException e) {
e.printStackTrace();
}
}
public ArrayList<String> getFolderIds() {
int foldercount = getCount("Folders");
ArrayList<String> lsfolderId = new ArrayList<String>();
try {
JIVariant vafolders = dpNameSpace.get("Folders");
dpFolders = (IJIDispatch) (vafolders)
.getObjectAsComObject(dpNameSpace);
JIVariant vacurFolder = dpFolders.callMethodA("GetFirst");
for (int i = 0; i < foldercount; i++) {
IJIDispatch curFolder = (IJIDispatch) (vacurFolder)
.getObjectAsComObject(dpNameSpace);
JIVariant vaEntryId = curFolder.get("EntryID");
String StrFolderid = vaEntryId.getObjectAsString2();
lsfolderId.add(StrFolderid);
vacurFolder = dpFolders.callMethodA("GetNext");
}
} catch (Exception e) {
e.printStackTrace();
}
return lsfolderId;
}
public int getCount(String StrObjecttype) {
String StrType = StrObjecttype;
int icount = 0;
try {
JIVariant vafolders = dpNameSpace.get(StrType);
dpFolders = (IJIDispatch) (vafolders)
.getObjectAsComObject(dpNameSpace);
JIVariant vaCount = dpFolders.get("Count");
icount = vaCount.getObjectAsInt();
} catch (Exception e) {
e.printStackTrace();
}
return icount;
}
/**
* @param args
*/
public static void main(String[] args) {
OutlookApp app = new OutlookApp();
app.createMail();
}
}
And the error console screen:
Word Mail ? :true
Editor type4
Is null :false
org.jinterop.dcom.common.JIException: The object invoked has disconnected from its clients. [0x80010108]
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:797)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:753)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:209)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:114)
at org.jinterop.dcom.win32.JIDispatchImpl.getIDsOfNames(JIDispatchImpl.java:101)
at org.jinterop.dcom.win32.JIDispatchImpl.get(JIDispatchImpl.java:416)
at trial.OutlookApp.createMail(OutlookApp.java:92)
at trial.OutlookApp.main(OutlookApp.java:142)
Caused by: rpc.FaultException: Received fault. (unknown)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:138)
at rpc.Stub.call(Stub.java:112)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:793)
... 7 more
Please help me...
Thanks,
Ads.
Which version of j-Interop are you using ?
I am using j-Interop 1.23 (Release Candidate 3).
Wow ! where did you get that from ? Please use the latest version. (Always use the latest version, we provide NO support for any old versions).
best regards,
Vikram
Ok. Now i will use latest version.
Thanks,
Ads
Hi vikram,
I am using the same version and I think I am facing the same issue.
I have to continue to sue 1.23.
Can you provide us the status about concurrent access/thread safetiness of j-interop ?
In my case I have two DCOM clients using separate session/com server
but doing request in the same time seems to trigger errors.
thank in advance for your help
regards
E Jannetti
Hi,
We have removed all errors known about memory management. As far as thread safety and concurrent access are concerned I am not aware of any (ever).
Again, we CANNOT provide any support for any older version.
best regards,
Vikram