Java and C++  interface via JNI

I am getting an "Runtime Error !" no other error message when I ran the C++ program creating JVM.
Line in "m_env->CallStaticObjectMethod(clsABNLogger,midABNLogger,jstrLoggingLevel); "
I have attached the code snippet.
Anybody has experienced this error. ? Please post here!!
JDK - 1.3
JRE - 1.3_07
MS VC++ 6.0 with Vstudio environment.
Thanks!
---Code snippet --------
// JNI Initialization
          m_jvm = 0;
          m_env = 0;
          jint res = -1;
     //     --more code
res = JNI_CreateJavaVM(&m_jvm,(void **)&m_env,&vm_args);
// Create the AgentDoc
// ===================
pDoc = new AAgentDoc(m_env,m_jvm);
          CString cstrLogFile;
          GetRegistryString("SOFTWARE\\ABN AMRO\\Call Center\\Business Layer", "Logging", cstrLogFile, FALSE, (HKEY)HKEY_LOCAL_MACHINE);
          if(cstrLogFile == "Y")
               CString sErrorLevel = "";
               GetRegistryString("SOFTWARE\\ABN AMRO\\Call Center\\Business Layer", "LoggingLevel", sErrorLevel, FALSE, (HKEY)HKEY_LOCAL_MACHINE);
               sErrorLevel.MakeUpper();
               if(sErrorLevel.Find("WINDOW") != -1)
                    jclass clsRuntime = JNIIDCache::getClass(m_env,"java/lang/Runtime");
                    jmethodID midRuntime = JNIIDCache::getMethodID(m_env,"getRuntime",clsRuntime,"()Ljava/lang/Runtime;","java/lang/Runtime", true);
                    jobject runtime = m_env->CallStaticObjectMethod(clsRuntime, midRuntime);
                    midRuntime = JNIIDCache::getMethodID(m_env,"exec",clsRuntime,"(Ljava/lang/String;)Ljava/lang/Process;","java/lang/Runtime");                    
                    CString sCommand = "java.exe -classpath " + classpathVar2 + " " + cstrSecuritypolicypath + " com.abnamro.na.cc.CallCenter.TheOracle.Classes.Util.DebugMain";//-Djava.rmi.server.codebase=file:/c:\\Cockpit\\source\\CallCenter\\TheOracle\\classes\\TheOracle.jar com.abnamro.na.cc.CallCenter.TheOracle.Classes.Util.DebugMain";
                    //CString sCommand = "java.exe -classpath c:\\Cockpit\\source\\callcenter\\theoracle\\classes\\TheOracle.jar -Djava.security.policy=C:\\Cockpit\\Source\\CallCenter\\theoracle\\classes\\java.policy com.abnamro.na.cc.CallCenter.TheOracle.Classes.Util.DebugMain";
                    //AfxMessageBox(sCommand);
                    jstring jstrCommand = m_env->NewStringUTF(sCommand.GetBuffer(sCommand.GetLength()));
                    jobject process = m_env->CallObjectMethod(runtime, midRuntime, jstrCommand);
                    // Wait for the debug server to start
                    Sleep(10000);
               jclass clsABNLogger = JNIIDCache::getClass(m_env,"com/abnamro/na/cc/CallCenter/TheOracle/Classes/Util/ABNLogger");
               if(clsABNLogger == NULL)
                    std::string Msg = "Unable to find ABNLogger class";
                    TRACE(Msg.c_str());
                    EventLogger.LogMsg(MSG_GENERAL_ERROR,EVENTLOG_WARNING_TYPE,MSG_GENERAL,m_sVersion,__FILE__,__LINE__,NULL,NULL,Msg.c_str(),NULL);
                    return retval;
               jmethodID midABNLogger = JNIIDCache::getMethodID(m_env,"setLoggingLevel",clsABNLogger,"(Ljava/lang/String;)V","com/abnamro/na/cc/CallCenter/TheOracle/Classes/Util/ABNLogger", true);
               if(midABNLogger == NULL)
                    std::string Msg = "Unable to set the logging level";
                    TRACE(Msg.c_str());
                    EventLogger.LogMsg(MSG_GENERAL_ERROR,EVENTLOG_WARNING_TYPE,MSG_GENERAL,m_sVersion,__FILE__,__LINE__,NULL,NULL,Msg.c_str(),NULL);
                    return retval;
               jstring jstrLoggingLevel = m_env->NewStringUTF(sErrorLevel.GetBuffer(sErrorLevel.GetLength()));
               m_env->CallStaticObjectMethod(clsABNLogger,midABNLogger,jstrLoggingLevel);
               if(m_env->ExceptionOccurred())
                    m_env->ExceptionDescribe();

Hello
My problem was resolved.!!!
Reason was I had multiple JRE s and path was not pointing to the correct JRE folder to get JVM.dll.
Problem was all the application installers install JREs and mess up the path variable.
Once I put the JRE version I need st the top of the path, It worked.
Make sure your path is pointing correctly to get the JVM.dll
Otherthing is if you are using MS VStudio 6.0 or .Net version check your INCLUDE libraries are pointed to the correct JRE version.
If this doesn't help explain further about your problem
Good luck

Similar Messages

  • Multithreaded Java app calling C via JNI...need help!

    I have a multithreaded Java app making a JNI call into some C code. It is a high speed imaging algorithm that I simply can't/don't want to do in Java. I am very new to JNI and I am hoping to get some expert advice on how to solve this issue. Basically, I need a seperate JNI session (if that is such a thing) per thread. In other words, I need to essentially keep state of each JNI call as it pertains to the current thread.
    The 2 ideas I have thought about are:
    1. Have the native code pass the data back into java, and have the java object hold it. Then, when subsequent native calls are made, you pass the data as a paramter of the native method.
    (This can be painful as it a lot of complicated and/or a lot of data.)
    2. Define some sort of a structure to hold each instance of the data on the C side, returning to java a lookup key. Subsequent native calls include the key as a paramter, and the data is looked up. ( a quick example of this would be nice).
    I would appreciate any information/expereince/pains with this one.
    Thanks!

    2. Define some sort of a structure to hold each instance of the data on the C side, returning to java a lookup key. Subsequent native calls include the key as a paramter, and the data is looked up. ( a quick example of this would be nice).The lookup key, or a simple "pointer", can be returned to Java as a plain old "int" or "long" (I don't know what is the size of the pointers in your platform, if 32 or 64-bit). So you can return a "long", that can be treated by Java programs as an "opaque handle" (a pompous name for things that can't be handled adequately at the "client" side).
    I assume that C/C++ allocates the memory and it remains "fixed" (untouched by garbage collection) between calls. So a real C pointer can be used in such case. If you have some smarter scheme of allocating things in your program, return another kind of lookup key (for instance, if you allocate things in fixed-size C arrays, you can return the index of the C object in the array instead of returning a plain pointer.

  • Getting the text of a java exception into C++ via JNI - how ?

    I have a C++ application that needs to create and call Java objects. If there is an exception in a Java method I want to be able to get the text of the exception's message for reporting an error to the C++ application user. The problem is, I can't get the methodID of the 'getMessage' method in the Throwable class.
    This is how I am tryng to get it:
    // Relevant exception-handling variables:
    jthrowable exceptionHandle;
    jclass jThrowableClass;
    jmethodID methodID;
    //Invoke the Java object
    env->CallVoidMethod( obj, methodID, args );
    //Check for an exception
    if ( (exceptionHandle = env->ExceptionOccurred()) != NULL )
    jThrowableClass = env->GetObjectClass( exceptionHandle );
    methodID = env->GetMethodID( jThrowableClass, "getMessage", "()Ljava/lang/String;" );
    // methodID is always NULL -- why??At this point, it can't go any further because the methodID is always NULL.
    I've tried several things, such as explicitly including rt.jar in the classpath when initializing the VM (I'm using JDK 1.3.1 and JNI 1.2) as well as copying rt.jar to the directory where the application's java VM code is at, but no luck there. I've also tried FindClass( "java/lang/Throwable") but that returned NULL so doesn't get as far as the code example here.
    How do you get the methodID of a method in a java language class like java.lang.Throwable ? Is there some initialization you need to do with the classpath ?
    Many thanks,
    Colm.

    When you program in Java you can use java.lang.reflect.
    For example, having a method named "met1" with 2 parameters, you can assign an object Method in this way:
    import java.lang.reflect.Method;
    Method comp = o1.getClass.getMethod("met1", param1.getClass(), param2.getClass());So with Throwable you could try something like: Throwable.class.getMethod("getMessage")Sorry but I am not so strong in C++ and I cannot give you help about it.
    The Java API documentation for the reflect package is at: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/package-frame.html
    Hoping to be helpful
    giangio

  • SWIG - C++/Java and multiple interface inheritance - SWIG typemaps

    In C++ I have the following. Can someone explain how to use SWIG typemaps to accomplish multiple interface inheritance in Java? I understand there is a javainterfaces typemap built into SWIG however I am such a newb with SWIG I really don't know where to start.
    class IRemoteSyncIO
    public:
      virtual ~IRemoteSyncIO () {}
    protected:
      IRemoteSyncIO () {}
    private:
      IRemoteSyncIO (const IRemoteSyncIO&);
      IRemoteSyncIO& operator= (const IRemoteSyncIO&);
    class IRemoteAsyncIO
    public:
      virtual ~IRemoteAsyncIO () {}
    protected:
      IRemoteAsyncIO () {}
    private:
      IRemoteAsyncIO (const IRemoteAsyncIO&);
      IRemoteAsyncIO& operator= (const IRemoteAsyncIO&);
    class RemoteMpe : public IRemoteSyncIO, public IRemoteAsyncIO
    }Thanks!

    Actually now I understand what you mean.... Ok, now I am going to modify the problem slightly and add Interface2 into the picture. The new code is:
    interface Interface1<SelfType extends Interface1<SelfType>>
    interface Interface2
    class Superclass implements Interface1<Superclass>
    class Dependant<Type extends Interface1<Type>>
       public static <Type extends Interface1<Type> & Interface2> Dependant<Type> getInstance(Class<Type> c)
         return new Dependant<Type>();
    class Subclass extends Superclass implements Interface2
      public Subclass()
        Dependant<Subclass> dependant = Dependant.getInstance(Subclass.class);
    }Now, previously I could replace:
    Dependant<Subclass> dependant = Dependant.getInstance(Subclass.class);
    with
    Dependant<Superclass> dependant = Dependant.getInstance(Superclass.class);
    and it solved the problem, but now that Type must implement Interface2 I cannot.
    The reason I added this requirement is that this is actually what is going on in my applicationI had made mistakely omited this detail from the original use-case.
    Can you think up of a possible solution to this new use-case?
    Thanks,
    Gili

  • Starting and stopping applications via a Java-application on Windows/Unix

    Hello,
    I want to start java and other applications via a java application.
    This java application should start several different applications on windows and
    on unix systems and take care of their current state (e.g. running/not running).
    For all applications to be started there are .sh-scripts for unix and .bat-scripts
    for windows. In the scripts there could be a java call, e.g. "java someApplication",
    or some executables could be called. These scripts set the applications' environment etc.
    and start the application finally.
    My java application calls these scripts via the ProcessBuilder API, which is working fine.
    But there is the following problem: on windows, when executing a script that starts
    some other application, the ProcessBuilder gives me process-handle to the started
    process. If calling destroy() on this handle, only the cmd.exe gets killed which
    started the application. The application itself is running on. This is undesired behaviour
    since I want to be able to control the started applications, at least start and stop it which
    is impossible that way.
    On unix, it is working when using
    "exec java someApplication"
    instead of just
    "java someApplication"
    in the .sh-scripts. The exec command substitutes the shell process with the underlying
    process started in the script, so everything is working as expected on unix.
    But how could I get this working on windows systems? Is there any equivalent to the exec
    command on unix? Any suggestions appreciated.
    If something's unclear in my description, please let me know.

    Yes - after looking at this option - I think that's the direction I am going to go. It probably makes sense to give my JMS topics and my BPEL server their own OC4J instances anyway - for a number of reasons.
    Lon

  • Overriding Interface methods via JNI

    Hello,
    How we can override Interface methods via JNI?
    For example:
    At HelloWorldSwing example:
    http://download.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java
    I've written anonymous Interface as:
    import javax.swing.*;       
    public class HelloWorldSwing1 {
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
        private static void createAndShowGUI() {
            //Create and set up the window.
            JFrame frame = new JFrame("HelloWorldSwing");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Add the ubiquitous "Hello World" label.
            JLabel label = new JLabel("Hello World");
            frame.getContentPane().add(label);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        static Runnable runnableObject = new Runnable() {
             public void run() {
                  createAndShowGUI();              
       public static void main(String[] args) {
             //Schedule a job for the event-dispatching thread:
            //creating and showing this application's GUI.
            SwingUtilities.invokeLater(runnableObject);
    }via JNI functions(http://download.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html) we cannot override Runnable Interface's run method? Can we?
    Only:
    RunnableClass's value isn't null with given example at below. FindClass finds the Runnable Interface.
    jclass RunnableClass;
    RunnableClass = (*env)->FindClass(env,"java/lang/Runnable");
      if( RunnableClass == NULL ) {
        printf("can't find class Runnable\n");
        exit (-1);
      }But How can we override Runnable class's run method?
    Thanks in Advance

    The only way you can override a method in Java is by defining a class that does so, either statically or as an anonymous inner class. You can't do either of those things in JNI. Ergo you cannot do what you are asking about.

  • Calling Java from Delphi via JNI

    Hi all. I've got a J2EE application, and I'm trying to write a Delphi client for the server. More specifics:
    Server and test client running in Win2000 SP4.
    Server running in JBoss (JUnit test cases have successfully connected to the server)
    JDK 1.4
    I'm using some Delphi files from JEDI which allow me to load/access a JVM via JNI. So far, I've been able to:
    1) Create a Properties object.
    2) Populate the Properties object with String values (making sure to use NewStringUTF to pass into the Properties method
    3) Find my java client classes which facilitate opening a connection.
    However, when I attempt to call the method on the object which actually creates the connection, I get an Exception.
    My immediate question is how do I see what the Exception is? I have an Exception object, but ExceptionDescribe doesn't product anything, and I'm having trouble finding any details about the Exception (what type of exception, what the Message or Call Stack is). At the moment, something's wrong but I can't see what. And I'll have no chance of fixing it if I don't know what the problem is.
    Thanks for any help,
    Ed

    I use some code for solving this task (in real project with Delphi 6.0 & Java 1.4.1).
    May be, it will help.
    procedure TJavaInterp.CheckJNIException(Message : string);
    begin
    if JNI_ExceptionCheck(JNIEnv) = JNI_TRUE then
    begin
    JNI_ExceptionDescribe(JNIEnv);
    JNI_ExceptionClear(JNIEnv);
    raise Exception.Create(Message);
    end;
    end;{ TJavaInterp.CheckJNIException }
    procedure TJavaInterp.HandleException(excpt : jthrowable);
    var
    Msg: string;
    ESyntax : Exception;
    CauseName : WideString;
    Tag : OleVariant;
    begin
    if JNI_IsInstanceOf(JNIEnv, excpt, FclsCommonSyntaxError) = JNI_TRUE then
    begin
    ESyntax := Self.BuildSyntaxException(excpt);
    JNI_DeleteLocalRef(JNIEnv, excpt);
    raise ESyntax;
    end;
    Msg := Self.GetMessage(excpt);
    if JNI_IsInstanceOf(JNIEnv, excpt, FclsNPScriptRuntimeException) = JNI_TRUE then
    begin
    CauseName := Self.GetCauseName(excpt);
    Tag := Self.GetTag(excpt);
    JNI_DeleteLocalRef(JNIEnv, excpt);
    raise NPScriptHelper.BuildNPScriptRuntimeException(Msg, CauseName, Tag);
    end;
    if JNI_IsInstanceOf(JNIEnv, excpt, FclsHaltException) = JNI_TRUE then
    begin
    JNI_DeleteLocalRef(JNIEnv, excpt);
    raise Exception.Create(Msg);
    end;
    Msg := Self.ToString(excpt);
    JNI_DeleteLocalRef(JNIEnv, excpt);
    raise Exception.Create(Msg);
    end;{ TJavaInterp.HandleException }

  • How can i pass string from C++ DLL to Java via JNI?

    Hi everybody. I made a DLL with Borland C++. I must pass a string from this dll to Java via JNI.Namely i define a string variable in C++ DLL and i send this variable's value to Java via JNI.
    I can pass integers but i couldnt Strings. . How can i do this? is there any sample?

    Hi,
    So your function should be private static native String get_text();
    (It's often a good idea to make native methods private since when you change signatures you generally have to change java wrapper methods only).
    I know nothing about C++ strings but I'm pretty sure that you can convert it to char*, so
    do :
    char* szMyString = myString.toChar*();
    Then return from native with JNU_NewStringPlatform(env, szMyString)
    (see my 1st answer for JNU_NewStringPlatform() description).
    --Marc (http://jnative.sf.net)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Known problems or limits regarding accessing BDB with Java via JNI

    Hi,
    we are currently in an evalutation phase and are planning to use BDB (C|JE) as back-end for a queueing system. This system is written in Java. One key requirement is high availability of the data hold in the back-end. We need the guarantee, that no data is lost, e.g. data added after checkpoints. The throughput is expected to be quite high (> 10.000.000 records hold within one single BDB-environment (we would use n parallel BDB-envs inside the service).
    So i'm wondering about using JE or DB... The former doesn't provide a replication system but is a 100%-pure Java implementation, the latter is written in C and accessed via JNI, which adds some overhead and maybe instability issues but comes with an integrated replication system. JE would require us to develop an in-application replication system or to use a DFS for HA or something like that.
    Are there any known issues regarding using DB with Java via JNI? Or any other hints?
    TIA,
    Dirk

    Silly me, I forgot to mention that a null return value means that an exception was thrown so you should get that and print the value (although I suspect it will be "class not found").

  • Transfer a Jpeg From Delphi to Java via JNI?

    Hi Guys,
    I am currently working on a project in which I have Windows DLL code that takes a screen capture (I'm using Delphi to write this). The result of this capture is stored as a TJpegImage. I have my Delphi code hooked to Java code (which the main program is written in) via JNI. I am trynig to transfer the Jpeg in a format in which Java can easily take it and make a BufferedImage out of it. How can I go about this? I have a few ideas, but I want to do it in the most efficient way possible. If someone knows how to do this, can they please share the solution with me?
    Thanks,
    -Tony

    whome0,
    Yes, thanks, that's exactly what I've been using. Basically, I'm at the point now where I know how to transfer the bytes, but for some reason, when I do this on the Java end:
    ByteArrayInputStream input = new ByteArrayInputStream( byteArr );
    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder( input );
    BufferedImage bi = decoder.decodeAsBufferedImage();
    I get this error:
    com.sun.image.codec.jpeg.ImageFormatException: Not a JPEG file: starts with 0x60 0x23
    at sun.awt.image.codec.JPEGImageDecoderImpl.readJPEGStream(Native Method)
    at sun.awt.image.codec.JPEGImageDecoderImpl.decodeAsBufferedImage(Unknown Source)
    at com.sun.media.protocol.screen.LiveStream.read(LiveStream.java:166)
    at com.sun.media.parser.RawBufferParser$FrameTrack.transferData(RawBufferParser.java:725)
    at com.sun.media.protocol.screen.LiveStream.run(LiveStream.java:235)
    at java.lang.Thread.run(Unknown Source)
    I am baffled at this point, because I do a byte count before I send from my Delphi code, and a byte count on the Java receiving end, and they are identical. Looking at other JPGs I have on my hard drive, they begin in the same manner that this file does. So I'm not sure what's going on here.
    -Tony

  • JNI communiction using a Java and a C++ Thread

    Hi,
    My purpose is to run a Java and a C++ thread parallel.
    The C++ thread receives events from a hardware. Getting an event it should put this (for testing it is just a String ) to a Java method (there the events will be collected in a vector).
    The Java thread should compute these vector step by step when it is scheduled.
    Therefore I have a Java Thread that invokes a native method.
    This C++ method
    1. stores a refernece to the JavaVM in a global var (using env->getJavaVM ),
    2. stores the object (given by JNICall) in a global var (reference to the calling java object),
    3. creates an object dynamically (this implements a Runnable C++ Interface needed for my Thread structure)
    4. and creates (dynamically) and starts a C++ Thread ( that uses the Win API ) giving it the former created object as parameter.
    Following the C++ thread uses the former stored global JavaVM to get a JNIEnv. It also uses the global stored object.
    After this I prepare for executing a callback to Java, e.g. AttachCurrentThread, GetObjectClass, GetMethodID and so on. Finally I sucessfully start some callbacks to Java (in the while loop of the thread).
    Now here is my Problem:
    The described way only works for a few calls and then raises an error. "java.exe hat ein Problem festgestellt und muss beendet werden." (german os) (In english it should be: "java.exe has detected a problem and has to be determined").
    What is wrong with my idea. It is something with the scope of my dynammically created objects? If have no idea anymore.
    Here the source code (C++ part):
    #include <jni.h>
    #include "benchmark.h"
    #include "bench.h"
    #include "canMessage.h"
    JavaVM *jvm;
    jobject javaObject;
    JNIEXPORT void JNICALL Java_Benchmark_startBench(JNIEnv *env, jobject obj, jobject obj2){
         env->GetJavaVM(&jvm);
         javaObject = obj2;
         cout << "\n C++ Starting benchmark\n\n";
         Benchmark *bm = new Benchmark();
         Thread *thread = new Thread(bm);
         thread->start();
         //thread->join(); //uncomment this there will be no error but also
                                         // no java thread doing it's job
    Benchmark::Benchmark(): _continue(false) {
    Benchmark::~Benchmark(){
    unsigned long Benchmark::run(){
         _continue = true;
         JNIEnv *jniEnv;
            jvm->AttachCurrentThread((void **)&jniEnv, NULL);
            jclass javaClass = jniEnv->GetObjectClass(javaObject);
         if(javaClass == NULL){
              cout << "--> Error: javaClass is null";
         jmethodID methodId = jniEnv->GetMethodID(javaClass, "addMessage", "(Ljava/lang/String;)V");
         if(methodId == NULL){
              cout << "--> Error: methodId is null";
         string str ("This is a test text.");
         const char *cStr = str.c_str();
         jstring javaString = jniEnv->NewStringUTF(cStr);
         jniEnv->CallVoidMethod(javaObject, methodId, javaString );
         int i_loopCount = 0;
         while(_continue){
              i_loopCount++;
              cout << i_loopCount << " C++ runing\n";
              jniEnv->MonitorEnter(javaObject);
              jniEnv->CallVoidMethod(javaObject, methodId, javaString );
              jniEnv->MonitorExit(javaObject);
              canMessage = new CANMessage();
              delete canMessage;
              canMessage = NULL;
         return 0;
    void Benchmark::stop(){
         _continue = false;
    }Is there a better and more elegant way to solve my problem?
    Thanks!

    At
    http://codeproject.com/cpp/OOJNIUse.asp
    http://www.simtel.net/product.php[id]93174[sekid]0[SiteID]simtel.net
    http://www.simtel.net/product.php[id]94368[sekid]0[SiteID]simtel.net
    you will find examples how to implement Java Interface in JNI C++ without Java coding.
    At
    http://www.simtel.net/product.php[id]95126[sekid]0[SiteID]simtel.net
    you can get pure JNI interface for DOTNET.

  • Comparable and comparator interface in java

    Hi All,
    How comparable and comparator interface works in java and when to use comparable and when to use comparator.please give me some example(code) as I am not able to understand the difference.
    Thanks
    Sumit
    Edited by: sumit7nov on May 17, 2009 4:45 AM

    Thanks,one more doubt.
    We have Collections.sort() method and we can sort any list by this method without implementing comparable or comparator interface.Then my question is when we need to implement comparable or comparator interface or when do we write our own compareTo() or compare() methods.
    Thanks
    Sumit

  • Interfacing JAVA and OLAP DML

    I am not able to get the patch no 2323002 for WinXP/NT/2000. Our project requires to tap the data stored in the cube for analysis and reporting .We plan to use OLAP-DML as a work about.
    Can we write OLAP-DML procedures to reply to the dynamic queries of the users and display ther results in JAVA i.e. interface it with JAVA? Also pls tell me how to create stored procedures. i am a new comer to OLAP. Pls help me out.
    thanx in advance
    Prahalad

    Hi,
    You should post this to the OLAP forum.
    Thanks, Mark

  • Loading sales territory and sales person via customer interface (RACUST)

    Hi,
    I am trying to laod sales territory and sales person via customer interface (RACUST). Even the ra_customers_interface_all has a territory column, the value is not getting populated when the interface completes successfully. Also, which column in customer interface table should hold salesperson value so that it gets successfully loaded to Oracle?

    Hi Murari,
    You can attach documents through Services for Object (GOS) Using Archivelink functionality.
    Generall Incoming documents ( Documents received by Company as part of transaction such as Invoices, Delivery challans, Cutomer PO which come in form of hard copies) are stored using SAP ARchivelink.
    Please refer the link
    [http://help.sap.com/erp2005_ehp_04/helpdata/EN/33/5cd7345a238045e10000009b38f83b/frameset.htm]
    With Warm Regards
    Mangesh Pande

  • Compilation error in creating shared library via JNI

    Hi ALL,
    I amin serious trouble with a problem. I am developing a Simulator, a function of which is to decode MPEG-2 Video files in real time and play it as well.I have got a MPEG-2 Decoder implemented in C from an open source and need to integrate with my Simulator which is writtebn in Java. The integration part I am doing via JNI(Java Native Interface). Now I have a bunch of C files in MPEG-2 decoder which are to be compiled during the Execution of the Java Simulator.Can anybody give some idea about how to call multiple C files from the Java Source through JNI at one go? Another problem I am facing is in calling a single C code from the traditional "HelloWorld" Java Code itself. The problem comes when I am trying to compile the shared library between the C native code and Java Code in my Linux Machine...I am getting the following message:
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/.../../../crt1.0 : In function '_start' :
    /usr/lib/gcc-lib/i386-redhat-linux/2.96/.../../../crt1.0(.text+0x18): undefined reference to 'main'
    collect2: ld retrurned 1 exit status
    What does the above errot mean? How to rectify it.It will be of great help if you anybody can give me clues.

    It means that your compiler options are wrong.
    You need to create a shared library.
    Instead you are creating an executable, which is not the same as a shared library.
    If you search this forum you will find posts with command line options that work.

Maybe you are looking for