I'm trying to convert C# code into Java code. Below is C# code.
var objProjectList = objServer.Enumerator;
int numDataSources;
var objDataSource = objProjectList.ItemByProjectName("XXX", out numDataSources);
objDataSource.Init();
var mysession = objDataSource.CreateSession();
IDSSSource obj =(IDSSSource) mysession.Component[EnumDSSComponentRole.DssRoleObjectSource];
/// Console.WriteLine("guid = "+ obj.Project.Info.Name);
IDSSReportDefinition rd5 = (IDSSReportDefinition)obj.FindObject("2CEF84F448D46B6XXXXXXXXXXXXXXX", EnumDSSObjectType.DssTypeReportDefinition);
Console.WriteLine("proceed further for dss source");
** Below is Java code**
JIVariant enumerator = dispatch.get("Enumerator");
IJIComObject objProjectList = enumerator.getObjectAsComObject();
IJIDispatch dispatchEnum = (IJIDispatch) JIObjectFactory.narrowObject((IJIComObject) objProjectList.queryInterface(IJIDispatch.IID));
Integer numDataSources=null;
Object[] objO = new Object[]{"XXX",numDataSources};
JIVariant[] dsssource = dispatchEnum.callMethodA("ItemByProjectName",objO);
IJIComObject obj = dsssource[0].getObjectAsComObject();
IJIDispatch objDataSource = (IJIDispatch) JIObjectFactory.narrowObject((IJIComObject) obj.queryInterface(IJIDispatch.IID));
//var objDataSource = objProjectList.ItemByProjectName("MSSQL Project", out numDataSources);
objDataSource.callMethod("Init");
JIVariant sessionVariant = objDataSource.callMethodA("CreateSession");
IJIComObject sessionO = sessionVariant.getObjectAsComObject();
IJIDispatch sessionDispatch = (IJIDispatch) JIObjectFactory.narrowObject((IJIComObject) sessionO.queryInterface(IJIDispatch.IID));
JIVariant[] componentArray = sessionDispatch.get("Component",new Object[]{13});//Component is an array
IJIDispatch idsssourceDispatch = (IJIDispatch) JIObjectFactory.narrowObject((IJIComObject) componentArray[0].getObjectAsComObject().queryInterface(IJIDispatch.IID));
System.out.println("Calling....... Find object");
JIVariant[] ji = idsssourceDispatch.callMethodA("FindObject",new Object[]{new String("2CEF84F448D46B6B5B37DEB9ACF6D775"),3});
System.out.println("Done");
**But while invoking FindObject I'm getting below exception**
Exception in thread "main" org.jinterop.dcom.impls.automation.JIAutomationException: Type mismatch. [0x80020005]
at org.jinterop.dcom.impls.automation.JIDispatchImpl.invoke(JIDispatchImpl.java:333)
at org.jinterop.dcom.impls.automation.JIDispatchImpl.callMethodA(JIDispatchImpl.java:520)
at org.jinterop.dcom.impls.automation.JIDispatchImpl.callMethodA(JIDispatchImpl.java:526)
at org.jinterop.dcom.impls.automation.JIDispatchImpl.callMethodA(JIDispatchImpl.java:477)
at com.company.Test4.main(Test4.java:70)
Caused by: org.jinterop.dcom.common.JIRuntimeException: Type mismatch. [0x80020005]
at org.jinterop.dcom.core.JICallBuilder.readResult(JICallBuilder.java:1079)
at org.jinterop.dcom.core.JICallBuilder.read(JICallBuilder.java:957)
at ndr.NdrObject.decode(NdrObject.java:36)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:137)
at rpc.Stub.call(Stub.java:113)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:901)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:856)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:266)
Can you point somewhere so that I can unblock my self.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm trying to convert C# code into Java code. Below is C# code.
var objProjectList = objServer.Enumerator;
int numDataSources;
var objDataSource = objProjectList.ItemByProjectName("XXX", out
numDataSources);
objDataSource.Init();
var mysession = objDataSource.CreateSession();
at org.jinterop.dcom.impls.automation.JIDispatchImpl.invoke(JIDispatchImpl.java:333)
at org.jinterop.dcom.impls.automation.JIDispatchImpl.callMethodA(JIDispatchImpl.java:520)
at org.jinterop.dcom.impls.automation.JIDispatchImpl.callMethodA(JIDispatchImpl.java:526)
at org.jinterop.dcom.impls.automation.JIDispatchImpl.callMethodA(JIDispatchImpl.java:477)
at com.company.Test4.main(Test4.java:70)
Caused by: org.jinterop.dcom.common.JIRuntimeException: Type mismatch. [0x80020005]
at org.jinterop.dcom.core.JICallBuilder.readResult(
JICallBuilder.java:1079)
at org.jinterop.dcom.core.JICallBuilder.read(JICallBuilder.java:957)
at ndr.NdrObject.decode(NdrObject.java:36)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.
java:137)
at rpc.Stub.call(Stub.java:113)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:901)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:856)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:266)
Can you point somewhere so that I can unblock my self.
--
The Mind is a place of its own. It can make a heaven out of hell or a hell
out of heaven. Attitude is everything. No matter how adverse conditions
maybe, one has the capacity to turn things around by one's Determination,
Perseverance and Hardwork.
I tried reaching you on vikram.roopchand@j-interop.org but looks like your mailbox is unavailable now. Can you post your mail id for further communication.
Regards,
Dilip
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Vikram,
I'm trying to convert C# code into Java code.
Below is C# code.
var objProjectList = objServer.Enumerator;
int numDataSources;
var objDataSource = objProjectList.ItemByProjectName("XXX", out numDataSources);
objDataSource.Init();
var mysession = objDataSource.CreateSession();
Caused by: org.jinterop.dcom.common.JIRuntimeException: Type mismatch. [0x80020005]
at org.jinterop.dcom.core.JICallBuilder.readResult(JICallBuilder.java:1079)
at org.jinterop.dcom.core.JICallBuilder.read(JICallBuilder.java:957)
at ndr.NdrObject.decode(NdrObject.java:36)
at rpc.ConnectionOrientedEndpoint.call(ConnectionOrientedEndpoint.java:137)
at rpc.Stub.call(Stub.java:113)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:901)
at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:856)
at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:266)
Can you point somewhere so that I can unblock my self.
Hi,
The JIAutomationException has more information in it. Please check that for
the exact thing that went wrong here.
best regards,
Vikram
On Tue, Mar 20, 2018 at 4:41 PM, Dilip Rai dilipbhumca@users.sourceforge.net wrote:
--
The Mind is a place of its own. It can make a heaven out of hell or a hell
out of heaven. Attitude is everything. No matter how adverse conditions
maybe, one has the capacity to turn things around by one's Determination,
Perseverance and Hardwork.
John Milton
(Paradise Lost)
Hi Vikram,
I don't know how to get more info from JIAutomationException. Seems like I'm not able to get more then type mismatch code and exception.
How to get the exact thing.
I've printed used below pring command.
System.out.println("*** ***");
JIExcepInfo jiInfo = jia.getExcepInfo();
int errorCode = jiInfo.getErrorCode();
String execDes = jiInfo.getExcepDesc();
String execSource = jiInfo.getExcepDesc();
String filepath = jiInfo.getHelpFilePath();
error code = 0
exec desc = [
error source = [
file path = ]
message = Type mismatch. [0x80020005]
Cause = org.jinterop.dcom.common.JIRuntimeException: Type mismatch. [0x80020005]
Error code = -2147352571
Regards,
Dilip
HI Vikram,
I tried reaching you on vikram.roopchand@j-interop.org but looks like your mailbox is unavailable now. Can you post your mail id for further communication.
Regards,
Dilip