[java & C++] jini

Pagina: 1
Acties:
  • 63 views sinds 30-01-2008

  • comprobot
  • Registratie: Augustus 2000
  • Laatst online: 07-08 19:54
u is er andere probleem :
Het gaat erom newobject.. het crasht door foutmelding.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
JNIEXPORT jint JNICALL Java_Bank_openRekening
  (JNIEnv * env , jobject jobj, jstring naam , jdouble saldo)
{
  jclass Lrh = (env)->FindClass("RekeningHouder");
  jthrowable exc;
  jclass newExcCls;
  int nrRek = (int) env->GetIntField(jobj, fid_nrRek);
  int Maxrek =(int) env->GetIntField(jobj, fid_MaxRek);
  exc = (env)->ExceptionOccurred();
     if (exc) {
            (env)->ExceptionDescribe();
            (env)->ExceptionClear();
             newExcCls = (env)->FindClass( 
                           "java/lang/Exception");
            if (newExcCls == NULL) {
                                      /* Unable to find the exception class, give up. */
                                      return 0;
                                    }       
                }

  cout << " start maar " << endl;
  if (nrRek==Maxrek) 
        {
            
            (env)->ThrowNew(newExcCls, "Maximaal aantal rekeningen bereikt");    
                
        }
    cout<< "verder?" << endl;
    jclass cls = (env)->GetObjectClass(jobj);
    
    jmethodID mid = 
         (env)->GetMethodID(cls, "zoekRekHouder", "(Ljava/lang/String;)LRekeningHouder;");
     if (mid == NULL) {
        cout << "probleem?" << endl;
         return 0;
     }
     cout << "Tja ?" << endl;
     jmethodID rhmid=(env)->GetMethodID(Lrh, "<init>", "(Ljava/lang/String;LBankRekening;)V");
     if (rhmid == NULL) {
        cout << "probleem? rh?" << endl;
         return 0;
     }
     jobject rh = env->NewObject(Lrh,rhmid);

//*************************************
//Deze opdracht crasht door foutmelding
//************************************
     rh = (jobject)(env)->CallObjectMethod(jobj,mid,naam);
//  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ???


 if(env->ExceptionOccurred()) {
      cout << "error occured copying array back" <<endl;
       env->ExceptionDescribe();
      env->ExceptionClear();
     }

     if (rh==NULL)
     { 
       cout << "geen probleem?";
       int rekNr = nrRek + 1000;
       jclass Lbr = (env)->FindClass("BankRekening");
       jmethodID mid1 = (env)->GetMethodID(Lbr,"BankRekening","(ID)V");
       
       jobject rk = (jobject)(env)->CallObjectMethod(jobj,mid1,rekNr,saldo);
       
       jmethodID mid2 = (env)->GetMethodID(Lrh,"RekeningHouder","(Ljava/lang/String;LBankRekening;)V");
       jobject rh = (jobject)(env)->CallObjectMethod(jobj,mid2,naam,rk);
       jobjectArray result3 =(jobjectArray)(env)->GetObjectField(jobj, fid_RekH);
       env->SetObjectArrayElement(result3,rekNr,rh);
       nrRek += 1;
       return rekNr;
     }
     cout << "exit" << endl;
 return 0;
}

 native public int openRekening (String naam, double saldo) throws Exception;
   /*{
      if (nrRek == maxRek)
         throw new Exception ("Maximaal aantal rekeningen bereikt");
      RekeningHouder rh = zoekRekHouder (naam);
      if (rh == null)
      {  int rekNr = nrRek + 1000;
         BankRekening br   = new BankRekening (rekNr, saldo);
         rekHouders[nrRek] = new RekeningHouder (naam, br);
         nrRek += 1;
         return rekNr;
      }
      return 0;
   }*/




 public RekeningHouder zoekRekHouder (String naam)
   {
      for (int i = 0; i < nrRek; i++)
         if (naam.equalsIgnoreCase (rekHouders[i].geefNaam()))
            return rekHouders[i];
      return null;
   }

een foutmelding:
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D393C07 Function=[Unknown.] Library=C:\jdk1.1.7B\jre\bin\client\jvm.dll

NOTE: We are unable to locate the function name symbol for the error
just occurred. Please refer to release documentation for possible
reason and solutions.


Current Java thread:
at Bank.openRekening(Native Method)
at BankGUI.<init>(BankGUI.java:112)
at SimpelBank.main(SimpelBank.java:27)

Dynamic libraries:
0x00400000 - 0x00406000 C:\jdk1.1.7B\bin\java.exe
0x77F50000 - 0x77FF7000 C:\WINDOWS\System32\ntdll.dll
0x77E60000 - 0x77F46000 C:\WINDOWS\system32\kernel32.dll
0x77DD0000 - 0x77E5D000 C:\WINDOWS\system32\ADVAPI32.dll
0x78000000 - 0x78086000 C:\WINDOWS\system32\RPCRT4.dll
0x77C10000 - 0x77C63000 C:\WINDOWS\system32\MSVCRT.dll
0x6D330000 - 0x6D45A000 C:\jdk1.1.7B\jre\bin\client\jvm.dll
0x77D40000 - 0x77DCC000 C:\WINDOWS\system32\USER32.dll
0x77C70000 - 0x77CB0000 C:\WINDOWS\system32\GDI32.dll
0x76B40000 - 0x76B6C000 C:\WINDOWS\System32\WINMM.dll
0x629C0000 - 0x629C8000 C:\WINDOWS\System32\LPK.DLL
0x72FA0000 - 0x72FFA000 C:\WINDOWS\System32\USP10.dll
0x6D1D0000 - 0x6D1D7000 C:\jdk1.1.7B\jre\bin\hpi.dll
0x6D300000 - 0x6D30D000 C:\jdk1.1.7B\jre\bin\verify.dll
0x6D210000 - 0x6D229000 C:\jdk1.1.7B\jre\bin\java.dll
0x6D320000 - 0x6D32D000 C:\jdk1.1.7B\jre\bin\zip.dll
0x6D000000 - 0x6D0FB000 C:\jdk1.1.7B\jre\bin\awt.dll
0x73000000 - 0x73023000 C:\WINDOWS\System32\WINSPOOL.DRV
0x76390000 - 0x763AC000 C:\WINDOWS\System32\IMM32.dll
0x771B0000 - 0x772D1000 C:\WINDOWS\system32\ole32.dll
0x6D180000 - 0x6D1D0000 C:\jdk1.1.7B\jre\bin\fontmanager.dll
0x73760000 - 0x737A4000 C:\WINDOWS\System32\ddraw.dll
0x73BC0000 - 0x73BC6000 C:\WINDOWS\System32\DCIMAN32.dll
0x6D910000 - 0x6D981000 C:\WINDOWS\System32\D3DIM.DLL
0x74720000 - 0x74764000 C:\WINDOWS\System32\MSCTF.dll
0x10000000 - 0x10049000 C:\sysp1\bank\bank.dll
0x76C90000 - 0x76CB2000 C:\WINDOWS\system32\imagehlp.dll
0x6D510000 - 0x6D58D000 C:\WINDOWS\system32\DBGHELP.dll
0x77C00000 - 0x77C07000 C:\WINDOWS\system32\VERSION.dll
0x76BF0000 - 0x76BFB000 C:\WINDOWS\System32\PSAPI.DLL

Local Time = Tue Nov 26 16:44:00 2002
Elapsed Time = 0
#
# HotSpot Virtual Machine Error : EXCEPTION_ACCESS_VIOLATION
# Error ID : 4F530E43505002E6
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode) #

Met sterren en opmerking met deze opdracht crasht met foutmelding.

Het gaat erom met CallobjectMethod en Jobject? Waarom crasht hij dan bovenstaande foutmelding? daar heb ik al getraceerd. maar het blijft nog steeds fout.

Waarom is er fout erin?

[ Voor 7% gewijzigd door comprobot op 26-11-2002 17:52 ]

www.tiedragon.nl


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:06
Jezus man kan je niet eens een fatsoenlijk berichtje typen? Terug naar groep 1 met jou!

En wat betreft je probleem: probeer eens te traceren wanneer het fout gaat, door vanaf niets te beginnen en elke keer een stukje toe te voegen.

  • comprobot
  • Registratie: Augustus 2000
  • Laatst online: 07-08 19:54
ik heb al dit opdracht al gegeven. ik heb al trace.. nu is wel fout erin.. met sterren erin.

//*************************************
//Deze opdracht crasht door foutmelding
//************************************
rh = (jobject)(env)->CallObjectMethod(jobj,mid,naam);
//

Is het wel goed of fout.. ik wil graag toelichting waarom is er fout gegaan?

[ Voor 60% gewijzigd door comprobot op 26-11-2002 17:47 ]

www.tiedragon.nl


  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
Sorry, kon het niet laten :/
edwtie schreef op 26 november 2002 @ 17:46:
ik heb deze opdracht al gegeven. ik heb al trace.. nu zit er wel een fout in.. met sterren erin. ????

//*************************************
//Deze opdracht crasht door foutmelding
//************************************
rh = (jobject)(env)->CallObjectMethod(jobj,mid,naam);
//

Is het wel goed of fout.. ik wil graag toelichting waarom, wat is er fout gegaan?
En dan nog snap ik niet wat je precies bedoelt.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ok, je kan lang of kort doorzeuren over lastig te lezen tekst. Maar laten we maar voor de korte variant gaan. Dan snapt iedereen het ook wel.

Zie ook: [rml]ACM in "[ PW] opmerking en beledigd :("[/rml]

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

ik zou toch eens beginnen met een verhaal waar je zonder glazen bol ook wijs uit kan
maak het desnoods in word met een spellchecker er overheen
dit is echt geen doen

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

ACM schreef op 26 November 2002 @ 18:35:
Ok, je kan lang of kort doorzeuren over lastig te lezen tekst. Maar laten we maar voor de korte variant gaan. Dan snapt iedereen het ook wel.

Zie ook: [NOHTML][rml]ACM in "[ PW] opmerking en beledigd :("[/rml][/NOHTML]


dit dus
edwtie schreef op 26 november 2002 @ 17:59:
het is niet leuke opmerking ! :(

Het is zeker geen leuke opmerking.
Maar hoewel je er door beledigd kan zijn (en volgens de titel ook bent), kan ik me wel goed voorstellen waarom Soultaker dat plaatste. Je Nederlands is wel lastig te begrijpen en dat gecombineerd met een lange lap aan code met een vrij beperkte uitleg zal Soultaker ertoe aangezet hebben zo te reageren.

Ik zeg dit overigens niet om je nog meer te beledigen of om zijn opmerking goed te praten, hoor, maar om een beetje inzicht te proberen te verschaffen in de redenatie van een ander.
Kortom, de opmerking van Soultaker is niet leuk, maar de boodschap erin is wel waar. Het had natuurlijk wel vele malen netter gekund.

Om toch geholpen te worden met je probleem kan je het best proberen zo duidelijk te zijn, als dat beter in het Engels gaat kan je dat misschien ook nog gebruiken (andere talen dan Engels zal bij weinig mensen bekend zijn). Anders moet je vooral proberen een duidelijke structuur in je berichten te gebruiken. Maak vooral ook gebruik van de [.code]-tag:
code:
1
// Stukje code

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.