Calling LabView ActiveX Server from TCL?

Does anyone have experience calling a LabView ActiveX server vi from
TCL? I created a simple VI with one control (labeled "A") and one
indicator (labeled "B") and a +1 adder between them. I can load and
open the VI from TCL:
package require tcom
set lv [::tcom::ref createobject "LabView.Application"]
set viPath "D:\\National Instruments\\LabView\\Activity\\a.vi"
set vi [$lv GetVIReference $viPath]
$vi FPWinOpen True
But when I try to send in data:
$vi -namedarg Call A 1
I get the error message "unknown parameter A".
I have also attempted to duplicate the "ActiveX Server" example
from the LabView help file, calling "Frequency Response.vi". This
approach encounters the same error message:
% package require t
com
3.0
% set lv [::tcom::ref createobject "LabView.Application"]
::tcom::handle0x013202F4
% set viPath "D:\\National
Instruments\\LabView\\examples\\apps\\freqresp.llb\\frequency
Response.vi"
D:\National Instruments\LabView\examples\apps\freqresp.llb\frequency
Response.vi
% set vi [$lv GetVIReference $viPath]
::tcom::handle0x01335AE8
% $vi FPWinOpen True
% $vi -namedarg Call Amplitude 10
unknown parameter Amplitude
If anyone can point me in the right direction, or give me an
example of how to do this I would greatly appreciate it.
TIA.
Leslie

In article ,
Leslie Brooks wrote:
>"Bruce Hartweg" wrote in message
>news:...
>> "Chin Huang" wrote in message
>news:[email protected]...
>> >
>> > I don't use LabView, but from the Visual Basic example I saw, it seems
>> > the Call method takes two arguments. The first is an array of parameter
>> > names and the second is an array of parameter values. Try to send in
>> > data with the Tcl command
>> >
>> > $vi Call [list A] [list 1]
>>
>> I'm unable to help the original question (don't know LAbView or VB stuff) but
>> just want to point out that [list A] is equal to A and [list 1] is the
>same as 1.
>>
>> Bruce
>
> I know what is supposed to be passed to the 'Call' method. Doing
>this:
>
>set inst [::tcom::info interface $vi]
>$inst methods
>
> produces (among other things):
>
>{1015 VOID Call {{{in out} {VARIANT *} paramNames} {{in out} {VARIANT
>*} paramVals}}}
>
> So the 'Call' method is expecting two parameters, both pointers
>to variants. TCOM appears to be passing the correct parameter type
>because the TCOM documentation says that a TCL List maps to a
>one-dimensional array of VT_VARIANT. However, the results are
>INvariant (bad pun intended):
>
>% $vi -namedarg Call Amplitude 10
>unknown parameter Amplitude
>% $vi -namedarg Call [list Amplitude] [list 10]
>unknown parameter Amplitude
>% $vi -namedarg Call [list Amplitude] [list [::tcom::na]]
>unknown parameter Amplitude
>% set i 5
>5
>% $vi -namedarg Call [list Amplitude] {incr i}
>unknown parameter Amplitude
>% $vi -namedarg Call [list Amplitude] [list [incr i]]
>unknown parameter Amplitude
>% $vi -namedarg Call Amplitude [incr i]
>unknown parameter Amplitude
>
> Who can help me with this? Who is the LabView Guru?
Try invoking the Call method without the -namedarg option. The
-namedarg option doesn't work the way you seem to think it works. The
-namedarg option provides a way to specify arguments named from the
method's parameter specification. For example, you discovered that the
Call method take two parameters named "paramNames" and "paramVals".
Tcom returns the error "unknown parameter Amplitude" because "Amplitude"
doesn't match either parameter name.

Similar Messages

  • Calling LabVIEW activex application from Matlab

    Hi All,
    I am having trouble calling a vi and passing parameters to it using ActiveX calls. 
    I tried 2 methods to call the vi using ActiveX but none of them works. I have described the 2 methods below.
    Method 1:
    sc = actxserver('LabVIEW.Application');
    glob = invoke(sc,'GetVIReference','C:\Program VIs\ControlSC.vi');
    SetControlValue(glob,'Command','open')
    glob.Run(0);
    After running the above code I get the an error
    "Source: LabVIEW
    Description: LabVIEW: Cannot load front panel."
    Method 2:
    sc = actxserver('LabVIEW.Application');
    glob = invoke(sc,'GetVIReference','C:\Program VIs\ControlSC.vi');
    paramNames={'Command'}
    paramValues = {'open'}
    glob.Call(paramNames, paramValues)
    After running the above code I get the an error
    "No method 'Call' with matching signature found for class"
    Does anyone have any idea how to fix these errors?
    Thanks,
    Ritesh

    The owner is not ("LabVIEW.Application"), That is the development enviornment's Active X server.
    The server name you want is this one:
    Jeff

  • How Do I set up a LabView ActiveX server?

    Are there any documenation or sample program which is about how to setup a LabView ActiveX server? my C++ program will dynamically call VI and then pass the integer to Labview program via ActiveX and then perform some control of digital oscillscope. Do anyone help me? thanks for help so much......It is in hurry......please help..............
    CowCow

    From the NI knowledge base...
    Problem: How do I enable LabVIEW as an ActiveX Server?
    Solution: Under Edit >> Preferences >> Server: Configuration, select ActiveX as a protocol and enable all server resources. Under Edit >> Preferences >> Server: Exported VIs, list the name of all VIs that can be accessed remotely. You can include the full path to the VI, or just list its name. Wildcard characters are valid. You can explicitly deny access to certain VIs by clicking the Deny Access button. Note that changes to the Server will not take effect until LabVIEW is relaunched.

  • Is it possible to call a activeX control from PL/SQL...?

    Hi all,
    Is it possible to call a activeX control from PL/SQL...? If yes, please give me sample code or any link.
    Thanks,
    Pal

    The LoadLibrary() Win32 call is used to find the physical DLL and load it into memory. This API call first look in the current directory for the file, and then uses the PATH environmental variable to try and find the file.
    Thus you need to make sure PATH is properly set. A Win32 process runs in a 32bit VM (Virtual Machine). Been a very long time since I did Windows server side development, but as I recall this VM inherits the default o/s environment (unlike Unix where the parent process environment is inherited).
    You can set the environment using the Properties menu of the System desktop icon (or via Control Panel).
    However.. Oracle does not run as your user. Typically it is installed as the o/s user Oracle and this user owns all the Oracle processes (listener, instance, etc).
    So you will need to make sure that this user's environment is correctly configured... Further more than this, I'm out of my depth. Did a lot of Windows stuff back in the 90's, but for many years now I'm only using Unix/Linux professionally - with Windows being my console platform for playing games at home. :-)
    On the Linux/Unix side, I configure the environment variable via the Listener. E.g. Under the entry SID_LIST_LISTENER, I configure the external procedure handler as follows:
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME=/tjs-dev/app/oracle/product/10.2.0)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ANY")
    )No idea how this applies and works on the Windows side.

  • Some errors when calling LabVIEW VIs Interactively from DIAdem

    Hi! I'm having some trouble using the "Calling LabVIEW VIs Interactively from DIAdem" found on:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/1A98AB48E35D913086256E23004E6A22
    Following the troubleshooting section didn't resolve the issue. I
    recompiled and built the exe (DIAdemLabVIEW.exe) for version 7.1.1,
    which I am developing on. But still I got the same error message, after
    a waiting for about a minute, on a diadem popup window:
    Error in <MenuAdd...ctDo.vbs (row:1, column: 1)
    Error in <addmenuentry.vbs (row:14, column: 3)
    ActiveX component can't create object.: 'DIAdemLabWIEV.Application'
    Using the llb's and exe's that was included with the installer worked
    flawless, with the exception that LV 7.1.1 vi's didn't appear on the
    popup window(DIAdemLabWiev.vi). So I tried to recompile and build for
    the 7.1.1, with this result.
    I'd be very grateful for fixes or solutions for this problem!
    Regards
    Roger Isaksson

    Brad, thanks for the reply! Below is my (correct?) modification of your script. Have I got it right?
    Dim lvapp, vi, viPath, paramName(1), paramVal(1)
    Set lvapp = CreateObject("LabVIEW.Application")
    viPath = "C:\TEMP\Test.exe"
    Set vi = lvapp.GetVIReference(viPath)
    vi.FPWinOpen = True
    paramName(0) = "In Name"
    paramVal(0)  = "In Value"
    paramName(1) = "Ut Name"
    Call vi.Call(paramName, paramVal)
    Call lvapp.Quit()
    MsgBox "Parameter1 Value = " & paramVal(1)
    I am not sure about the format of the <paramName(0) = "In Name">.
    The control name is "In" and is a I32, the name for the indicator is
    "Ut" and has the same storage type as the control.
    Running the script gives an error in line 4, that is the <Set vi =
    lvapp.GetVIReference(viPath)>. I'll attach the exe and the error
    message.
    I have another question regarding the relatively large amount of RAM
    that diadem uses for export from my labview application to diadem. More
    than 10 times the size of the data is required for exporting to diadem.
    Since our application use relatively large files, actually up to
    several GB's, this soon becomes problematic. See the attached picture
    of the memory usage after exporting a 10MB segment (contains 42
    channels of measurement data). Your help in these matters would be
    appreciated!
    Regards
    Roger Isaksson, Damill AB
    Message Edited by Roger Isaksson on 09-09-2005 10:22 AM
    Message Edited by Roger Isaksson on 09-09-2005 10:22 AM
    Attachments:
    VBError.JPG ‏181 KB
    Test1.vi ‏9 KB

  • How to call LabVIEW ActiveX dlls into VB6

    I'm jumping in on a project written primarily in VB6. I'd much rather wirte code in LabVIEW so what I am looking for is some example code for calling LabVIEW activeX dlls into VB6. Does anyone have example code? I need to see how the LabVIEW libraries and classes are called and used in VB6.

    Hi Drewdafis,
    Refer to this link for example code on calling a LabVIEW DLL from Visual Basic.
    Hope this helps!
    Best Regards,
    Jonathan N.
    National Instruments

  • Calling (VB)activex object from JSP

    Hi,
    I am trying to call a ActiveX object from JSP using the ActiveXObject method in javascript. I have a dll filed named LPMSFunctions.dll which is registered and is being passed as an argument to the ActiveXObject method. Below is the code i am trying to execute..
    <html>
    <head>
    <title>Script Example</title>
    </head>
    <body>
    <br><br>
    <P align="center">
    <form action="" method="post">
    <script language="JavaScript">
    function comEventOccured()
    try{
    var myobject;
    myobject = new ActiveXObject("LPMSFunctions72.LPFunctions72");
    alert("Inside LPMSFunction72");
    alert(myobject.GetDocPath());
    catch(e)
    alert("Error");
    </script>
    </form>
    </body>
    </html>When i write the above code and save it as an html file it works fine..the activex object is created and the methods are called , but when i copy the same code to a file and save it as jsp file under webapps folder under tomcat it doesnt work and reports a javascript error with the error being:
    Automation server cant create the object at line :
    var SSOObj = new ActiveXObject("LPMSFunctions72.LPFunctions72");
    Please suggest how can I solve the problem. Your help would be sincerely appreciated.
    Thanks
    shravan

    You want to use the Variant to Data node, wiring in an ActiveX constant configured to the interface type you want.
    Brian Tyler
    http://detritus.blogs.com/lycangeek

  • How to call an external server from Webdynpro program?

    Hi All,
    i have a requirement in which i have to call an external server from Webdynpro ABAP program.
    how to imp

    hi ,
    do u mean u need to call the external link from ur WD ABAP application ?
    if so , u either create
    1 a Link to URL ( LTU ) UI element  and call the external link using that
    2 if u wish to use some other fuctionality and thn wish to call the URL in ur application ,u write this piece of code in ur relevant on Action method :
    data:  lo_window_manager type ref to if_wd_window_manager.
    data:  lo_api_component  type ref to if_wd_component.
    data:  lo_window         type ref to if_wd_window.
    data:  ld_url type string.
    lo_api_component  = wd_comp_controller->wd_get_api( ).
    lo_window_manager = lo_api_component->get_window_manager( ).
    ld_url =  ''.  // ur external sever link here
    CALL METHOD lo_window_manager->CREATE_EXTERNAL_WINDOW     
    EXPORTING     URL                = ld_url           
    RECEIVING     WINDOW         = lo_window.
    lo_window->open( ).
    I hope u wud be able to create URL now .
    regards,
    amit
    Edited by: amit saini on Oct 13, 2009 11:25 AM

  • Labview activex server registration incomplete.

    I made an ActiveX server using LabVIEW. The server should communicate with Excel. During installation of the server I register the server: "Server.exe /RegServer". When I try to call the server from Excel/VBA, it responds with "Run-time error '429': ActiveX component can't create object". The server is only recognized by Excel after I have started and stopped the server once.
    When investigating the registry, it appears that the difference between registering with /RegServer and just starting and stopping the server are the following registry keys:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ServerName.Application
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ServerName.Application.6
    To my opinion the /RegServer commandline option does not do the whole job.
    Also /UnRegServer does not remove the above mentioned registry keys.
    Is this a bug or just normal behaviour?
    Has it been solved in newer LabVIEW versions (I use 6.0.2)?

    Hi,
    I've tried to call a with LabVIEW 7.1.1 created activeX server. This works without any errors. I've attached my code. 
    As for the register keys, this seems to be the default behaviour of ActiveX, each server has a key without version number e.g.
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ServerName.Application
    And one or more with a version number:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ServerName.Application.6
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ServerName.Application.7 Kind regards,
    Karsten
    Applications Engineer
    National InstrumentsMessage Edited by KvZ on 07-27-2005 02:37 PM
    Attachments:
    ActiveX Server.zip ‏45 KB

  • Starting applications remotely using LabView activeX server

    I want to
    make a program that enables me to start applications on a remote computer. I
    made a program that starts applications using either System exec.vi or .NET and
    both methods work find on my local computer. I built it with activeX server
    enabled and copied it to my remote computer. After struggling with DCOM
    settings and Security settings for a couple of days!! I’m now able to start the
    program from my local computer. The thing is that I can’t see either the
    LabView program or the started application. When opening the Windows Task
    Manager, I can see both the programs under the Process tab so they have
    started, but obviously as a “background” process and not as an application.
    Does anyone
    have an idea on how to start the programs as applications?

    Why not just use PsExec?
    http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

  • Labview ActiveX Server PATH if in developmen​t environmen​t

    I'm using Labview 2010 to build an ActiveX server.  I can access the executable as an activeX sever from both C and LabVIEW clients.  No problems there.  But now I want to do some debugging in the development environment while accessing the program via an ActiveX client.  In such a situation, how do I change how I access the VI's in the project?  I tried using the lvproj in place of the EXE, but this was insufficient.  Seems a little convoluted with the changes required to do this debugging.

    I think that I already have my answer in that I can not generate a LV event through an ActiveX interface regardless of the type of control, but if you want to play with it, here is a Demo which I derived from the previous link given above.  Within the attached ZIP file, read the "Readme.txt" file for instructions.  Specifically the program assumes that is located in C:\tmp, since LabVIEW doesn't like relative pathes in both the build and reference node paths, (so they are coded with absolute pathes).  If you use C:\tmp, the instruction in Readme.txt should work.
    What happens is that you click on the button in the ActiveX Client running in the LV development space.
    You can see the control value change shade/color in the ActiveX Server EXE application,
    but because no event is generated, the Event Handler does nothing.
    I know that I can poll the value of the control and then use the Value (Sgnl) property control to generate an event, but this isn't a very clean solution.
    All code in the ZIP file is LabVIEW 2010 release1
    Attachments:
    LV ActiveX Demo.zip ‏172 KB

  • Call LabVIEW Virtual Instrument through ActiveX Server from C/C++

    I am trying to access a VI by C/C++ almost identical to the reference example that can be found on this site for Visual Basic. However, somehow, I am unable to succeed to use the ActiveX Call() function. The program always crashes, whatever I try. Because the Visual Basic version works without any problems, I hope someone can point me the error in the code.
    Thanks!
    #include "stdafx.h"
    #import "LabVIEW.tlb"
    #define VIPATH "D:\\Program Files\\National Instruments\\LabVIEW 7.0\\examples\\apps\\freqresp.llb\\Frequency Response.vi"
    using namespace LabVIEW;
    int _tmain(int argc, _TCHAR* argv[])
    // Initialization
    HRESULT he = NULL;
    he = CoInitialize(NULL);
    // Create instance of
    labview application engine
    _ApplicationPtr pLV;
    he = pLV.CreateInstance("LabVIEW.Application");
    // Create instance of virtual instrument
    VirtualInstrumentPtr pVI;
    he = pVI.CreateInstance("LabVIEW.VirtualInstrument"); /* ?not? mandatory */
    // Get reference to a VI at location VIPATH
    _bstr_t viPath(VIPATH);
    _bstr_t password("");
    VARIANT_BOOL resvForCall = FALSE;
    long options = 0;
    pVI = pLV->GetVIReference(viPath,password,resvForCall,options);
    // Show front panel
    pVI->FPWinOpen = TRUE;
    // Call the referenced VI as subVI
    _variant_t paramNames[5] = {"Amplitude", "Number of Steps", "Low Frequency", "High Frequency", "Response Graph"};
    _variant_t paramVals[5] = {}; /* VT_EMPTY */
    /* Fill ParamVals with values from VI */
    for (int i = 0; i < 5; ++i) paramVals[i] = pVI->GetControlValue(paramNames[i].bstrVal);
    /* Call VI -> !!! CRASH !!! :-( */
    pVI->Call(paramNames,paramVals);
    // Release references and close application
    pLV->AutomaticC
    lose = TRUE;
    pVI.Release();
    pLV.Release();
    CoUninitialize();
    return 0;

    This may not be the easiest way. Although i have not used _variant_t. But it seems like your VARIANT type is VT_EMPTY for everything. You need to build up an array of variants with correct type, that matches the type of control you are assigning data to like VT_INT for int numeric, VT_BSTR for string control etc
    VARIANT paramNamesVarArg, paramValuesVarArg;
    SAFEARRAY *paramNames, *paramValues;
    ::VariantInit(&paramNamesVarArg);
    paramNamesVarArg.vt = VT_ARRAY | VT_BYREF | VT_BSTR;
    // create safearray of strings
    SAFEARRAYBOUND rgsabound[1];
    rgsabound[0].lLbound = 0;
    rgsabound[0].cElements = 1;
    paramNames = SafeArrayCreate(VT_BSTR, 1, rgsabound);
    paramNamesVarArg.pparray = &paramNames;
    long index = 0;
    _bstr_t paramName = "Numeric";
    BSTR *bstrVal;
    retVal = SafeArrayPtrOfIndex(paramNames, &index, (void **)&bstrVal);
    *bstrVal = paramName.copy();
    //do the same method for paramValuesVarArg
    ::VariantInit(&paramValuesVarArg);
    paramValuesVarArg.vt = VT_ARRAY | VT_BYREF | VT_I4;
    rgsabound[0].lLbound = 0;
    rgsabound[0].cElements = 1;
    paramValues = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
    paramValuesVarArg.pparray = &paramValues;
    VARIANT *dispVarVal;
    VARIANT tempVar;
    tempVar.vt = VT_I4;
    retVal = SafeArrayPtrOfIndex(paramValues, &index, (void **)&dispVarVal);
    *dispVarVal = tempVar;
    viPtr->Call(&paramNamesVarArg, &paramValuesVarArg);
    Hope it helps.
    A Rafiq

  • Getting clusters from LabVIEW ActiveX Server with Excel/VBA

    Hello,
    my colleague and I are trying to control a LV from Excel (VBA) by ActiveX.
    I.E.:
    We do something like :
    Set LV = createObject("LabVIEW.Application")
    Set VI = LV.GetVIReference("Path_to_VI")
    ParamNames(0) = "Input1"
    ParamNames(1) = "Input2"
    ParamNames(2) = "Output"
    ParamValues(0) = 1
    ParamValues(1) = 3.1415
    Call VI.Call(ParamNames,ParamValues)
    msgbox("output =" & ParamVals(2))
    This works perfectly for simple data types (int, double, float, string, etc )
    Now we need to transfer more complex structures, which are originaly LV-clusters.
    But we did not find any clue on how do that (especially receive clusters) in the help or on the internet.
    Is there any chance to succeed ???
    TIA,
    Thomas

    Actually, working with clusters is really really easy. Through the magic of - well something - a cluster in LV comes out in the VBA environment as an array of variants. There was an activex example that shipped with V7.1 that showed this very thing. I couldn't find them in V8 so here is the 7.1 stuff.
    Check out the macros in the Excel spreadsheet... This show running the VI in the development environment, but if this looks interesting I can fill you in on how to make it work in an executable.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps
    Attachments:
    freqresp.xls ‏49 KB
    Frequency Response.llb ‏155 KB

  • Calling foreign EJB server from Weblogic

    Hi,
    I'm trying to invoke an EJB hosted in an old PowerTier EJB Container from an 8.1 SP5 hosted EJB, and I'm running in to problems. (PowerTier is based on the JBroker ORB)
    So far the only way I can get it to work is by replacing Weblogic's ORB implementation with the JBroker one:
    -Djavax.rmi.CORBA.StubClass=com.sssw.jbroker.rmi.StubDelegate
    -Djavax.rmi.CORBA.UtilClass=com.sssw.jbroker.rmi.UtilDelegate
    -Djavax.rmi.CORBA.PortableRemoteObjectClass=com.sssw.jbroker.rmi.PortableRemoteObjectDelegate
    But I'd like to avoid doing this if possible.
    So I'd like to get this to work using the WL RMI-IIOP implementation to integrate with the PowerTier/JBroker server.
    After looking at : http://forums.bea.com/bea/message.jspa?messageID=202437541&tstart=0
    I tried the following:
    Properties config = new Properties();
    config.setProperty(
    Context.PROVIDER_URL, "<b>iiop</b>://xxx.xxx.xxxxx.xxx:389/cn=Instance1,ou=Development,cn=Xxxx%20Xxxxxxx%20Xxxxx,ou=Components,cn=Xxxxxx%20Xxxx,ou=Applications,o=xxxxxxxx,c=uk");
    InitialContext context = new InitialContext(config);
    URL changed to protect the innocent - but format maintained.
    When the server executes this I get the following exception:
    javax.naming.InvalidNameException: url does not contain a port
    at weblogic.corba.j2ee.naming.NameParser.parseURL(NameParser.java:419)
    at weblogic.corba.j2ee.naming.ORBHelper.parseURL(ORBHelper.java:533)
    at weblogic.corba.j2ee.naming.ORBHelper.getORBReference(ORBHelper.java:440)
    at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:97)
    at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:42)
    at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:135)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:195)
    Any idea what is causing this exception? If I replace the '%20' with a normal spaces it makes no difference.
    Am I going about this the right way?
    Thanks!

    Getting a bit closer now.
    The Object retreived from LDAP was a javax.naming.Reference - which contains the IOR for the Home interface.
    // Get IOR from LDAP
    InitialContext context;
    Hashtable config = new Hashtable();
    config.put(Context.PROVIDER_URL,"ldap://<host>:389/");
    config.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    context = new InitialContext(config);
    Reference reference = (Reference)context.lookup("<path to home>");
    // Get IOR from reference
    String ior = "" + reference.get(0).getContent();
    // Get WLS ORB
    ORB orb = (ORB)new InitialContext().lookup("java:comp/ORB");
    Object object = orb.string_to_object(ior);
    FooHome home = (FooHome)PortableRemoteObject.narrow(object, FooHome.class);
    Foo foo = home.create();
    // Everything works fine up to here.
    foo.invokeMethod(); // <-- This fails with the following exception :
    java.rmi.RemoteException: ; nested exception is:
    org.omg.CORBA.BAD_OPERATION: vmcid: 0x0 minor code: 0 completed: No
    at weblogic.iiop.OutboundRequestImpl.sendReceive(OutboundRequestImpl.java:197)
    at weblogic.iiop.IIOPRemoteRef.invokeInternal(IIOPRemoteRef.java:205)
    at weblogic.iiop.IIOPRemoteRef.invoke(IIOPRemoteRef.java:153)
    at ztkt.pl.Foo_IIOP_WLStub.invokeMethod(Unknown Source)
    at com.xyz.ezs.wl.ejb.PLProxyBean.invoke(PLProxyBean.java:56)
    at com.xyz.ezs.wl.ejb.PLProxy_o3b3ao_EOImpl.invoke(PLProxy_o3b3ao_EOImpl.java:45)
    at com.xyz.ezs.wl.ejb.PLProxy_o3b3ao_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:492)
    at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:435)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:430)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:35)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    Caused by: org.omg.CORBA.BAD_OPERATION: vmcid: 0x0 minor code: 0 completed: No
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:306)
    at java.lang.Class.newInstance(Class.java:259)
    at weblogic.iiop.ReplyMessage.getThrowable(ReplyMessage.java:337)
    at weblogic.iiop.InboundResponseImpl.getThrowable(InboundResponseImpl.java:62)
    at weblogic.iiop.OutboundRequestImpl.sendReceive(OutboundRequestImpl.java:179)
    ... 15 more
    (Method, class and package names changed.)
    Has anyone seen this before? Any idea what might be causing it?

  • Getting APPSRV_JNDI_LOOKUP_ERROR while calling CAF Ext Serv from WebDynpro

    Hi,
    Iam developing a Composite application using CAF External Service & Application Service with a Web Dynpro UI wherein all the business logic is developed and invoked as web services. I do not face any problem in generating project code, building, deploying and running the application in my machine. But when I deploy the relevant .ear files to some other machine, I get APPSRV_JNDI_LOOKUP_ERROR and Iam unable to perform any operation which invokes a web service.
    Iam only trying to deploy in some other machine the following .ear files available in my machine available at ...\LocalDevelopment\DCs\sap.com\project\... folder :-
    sap.com~project.ear
    sap.comprojectmetadata.ear
    sap.comprojectpermissions.ear
    sap.comprojectwebdynpro.ear
    The following is the exception trace that I get :-
    ===========================================================
    Message : APPSRV_JNDI_LOOKUP_ERROR
    [EXCEPTION]
    com.sap.caf.rt.exception.ServiceException: Object not found in lookup of ZWSD__MATERIAL__SAVEDATA.
         at com.sap.pxwebservice.utils.HomeFactory.getLocalHome(HomeFactory.java:60)
         at com.sap.pxwebservice.appsrv.materialsavedata.MaterialSaveDataBean.getZWSD__MATERIAL__SAVEDATA(MaterialSaveDataBean.java:341)
         at com.sap.pxwebservice.appsrv.materialsavedata.MaterialSaveDataBean.MaterialSaveData(MaterialSaveDataBean.java:315)
         at com.sap.pxwebservice.appsrv.materialsavedata.MaterialSaveDataLocalLocalObjectImpl0.MaterialSaveData(MaterialSaveDataLocalLocalObjectImpl0.java:103)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ===========================================================
    Please let me know :-
    1) I find that always one more file called .ear is created under ...\LocalDevelopment\DCs\sap.com\project\webdynpro\_comp
    But Iam unable to deploy this because it always throws invalid ear error. If I need to deploy this also, how do I do it ?
    2) Is my deployment approach correct ? Is there any other simpler approach ?
    3) If I need to deliver the project binaries to a third party how do I package them to ensure that it can be re-deployed at the other end ?
    Thanks in advance,
    Regards,
    Rajkumar

    Looks like a known issue with missing jar files.
    Please refer to Oracle support document - [ID 1332553.1]

Maybe you are looking for

  • Firefox process starts but window doesn't open.

    All the suddenly when I start Firefox 11 the window doesn't appear but the process will start in task manager. Yesterday morning everything worked well, but when I came home at evening Microsoft Security Essentials wasn't starting it's protection. I

  • SQL Error in BPS

    I am getting the SQL error mainly when running a planning function, but sometimes when changing layouts. This is the error: <b>Error in SQL Statement: SAPSQL_INVALID_FIELDNAME D8~</b> At the end it will list a fieldname, but can be a different field

  • Report of discounts availed in POs

    HI Friends, Somebody pls let me know the Report / Transaction which will give the list of discounts taken in the POs (the POs in which there is value entered for discount-condition type ) Points will be promply given. Thanks in advance.

  • How to retrieve Notes in background that were created by GOS?

    Hello all - I have Notes that were created for DIRs in the GUI (CV02N) using Services for Objects (GOS).  I need to retrieve these notes in background.  Has anybody done this? (I've read Ram Manohar Tiwari's blog Generic object services (GOS) - In Ba

  • Prompt dialog in JSP

    Hello, I am trying to figure out how to call a javaScript function from a JSP page that prompts the user to do one of two things. Depending on the selection, I would like to return to the JSP and continue on with the code. What is the best way to do