Avanserte alternativer for feilsøking av Java-bønner

Under vanlig utvikling skal du ikke behøve å tenke på VM som blir brukt av hver forekomst av det visuelle redigeringsprogrammet. Avanserte brukere kan imidlertid konfigurere arbeidsbenken slik at eventuelle meldinger som sendes til System.out eller System.err i VM, blir skrevet til .log-filen i .metadata-katalogen i arbeidsområdet.

Den virtuelle maskinen (VM) som blir brukt til å utføre Java-bønner, er ikke samme VM som arbeidsbenken blir kjørt i. Det blir opprettet en egen VM for hver forekomst av det visuelle redigeringsprogrammet. Klassebanen for denne VM blir sendt til oppføringene i Java-byggebanen for prosjektet. Hvis Java-byggebanen blir endret mens det visuelle redigeringsprogrammet er åpent, må eventelle åpne redigeringsprogrammer lukkes og åpnes igjen for å gjenspeile den oppdaterte byggebanen.

Når arbeidsbenken blir startet, kan den få alternativet -DEBUG, som peker på en tekstfil:

-DEBUG file:/c:/temp/options.txt

Feilsøkingsfilen inneholder oppføringer som blir lest av det visuelle redigeringsprogrammet. Hvis filen inneholder følgende linje, blir eventuelle meldinger som sendes til System.out eller System.err, vist i konsollen:

org.eclipse.jem.proxy/remote/debug/vmtraceout=true

I tillegg til at konsollutdata blir vist fra den VM som det visuelle redigeringsprogrammet bruker, kan du starte den i feilsøkingsmodus og utføre ekstern feilsøking. Dette scenariet er ikke optimalisert og kan endres i fremtidige versjoner av det visuelle redigeringsprogrammet. Det er imidlertid dokumentert i tilfelle du trenger å utføre feilsøking av Java-bønner under designfasen. Når du skal utføre ekstern feilsøking, må to arbeidsbenker kjøres: en med Java-bønnene som du skal feilsøke, og en som kan utføre kontaktbasert ekstern feilsøking. Den andre arbeidsbenken kan kjøres på samme maskin, eller på en annen maskin. For å aktivere feilsøking av det visuelle redigeringsprogrammets VM skal -DEBUG-filen inneholde denne linjen:

org.eclipse.jem.proxy/remote/debug/debugvm=true

Hver gang det visuelle redigeringsprogrammet starter en VM, vil du bli spurt om du vil at den skal startes i feilsøkingsmodus eller ikke.

Den forrige dialogboksen blir brukt når klassen HelloFrame.java i prosjektet Test blir åpnet i det visuelle redigeringsprogrammet. Hvis du velger Ja (Y), eller oppgir Y og trykker på Enter i konsollen, blir VM startet i avbruddsmodus der -Xdebug bruker en kontaktforbindelse. Det blir tildelt en ledig port. Deretter får du vite portens nummer.

Det neste trinnet er å koble en eksternt feilsøker til portnummer 7078. Forekomsten av arbeidsbenken som kjører det visuelle redigeringsprogrammet, er deaktivert mens den eksterne feilsøkeren kobles til, så du må bruke en feilsøker fra en annen applikasjon. Hvis den andre applikasjonen er en annen forekomst av arbeidsbenken, kan du begynne ekstern feilsøking ved å bruke menyvalget Feilsøking > Feilsøking og opprette en ny ekstern Java-applikasjonskonfigurasjon.

Oppgi portnummeret som tidligere ble skrevet til stdout, i dette tilfellet 7078. Hvis feilsøkeren ligger på en annen maskin, oppgir du IP-adressen til maskinen som kjører arbeidsbenken som feilsøkes, i feltet Vert. Du starter den eksterne feilsøkeren ved å klikke på Feilsøking og oppgi y i stdin-konsollen på arbeidsbenken som feilsøkes.

I tillegg til at du blir spurt om du vil feilsøke VM som hver forekomst av det visuelle redigeringsprogrammet bruker, får du meldinger som spør om du vil feilsøke selve prosjektet:

Vil du starte den eksterne VM (Project (Test) -Beaninfo) i feilsøkingsmodus? (Oppgi Y eller N):

Dette gjelder for VM som blir brukt til introspeksjon, og som java.beans.Introspector blir kjørt i, og kan skjelnes fra VM for det visuelle redigeringsprogrammet, fordi den ikke oppgir et bestemt Java-kildefilnavn. Denne VM blir startet første gang en informasjon om en bønne kreves for en Java-bønne i et prosjekt, og forblir aktiv så lenge prosjektet er åpent. Ved å feilsøke dette prosjektet kan du gå gjennom og analysere en hvilken som helst kode i BeanInfo-klassene mens det blir utført introspeksjon i Java-bønnene. Introspeksjon forekommer en gang for hver Java-bønneklasse for hvert prosjekt det blir brukt i. Resultatet ligger i hurtigbufferen for at ytelsen skal bli bedre. Hvis du på et eller annet tidspunkt trenger å fjerne BeanInfo-informasjon som holdes for et prosjekt, fra hurtigbufferen, kan du lukke og åpne prosjektet fra hurtigmenyen.

Beslektede begreper
Java-bønneunntak
Beslektede oppgaver
Kjøre den visuelle klassen som en Java-bønne eller applikasjon
Konfigurere alternativer for kjøring av en Java-bønne eller applikasjon
Feilsøke en Visual Java-bønne eller applikasjon
Teste og distribuere appletter

(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved.