TeddyErt Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 (endret) Har litt problemer med å kjøre programmet etter at jeg har lagt filene inn i en jarfil. Selve programmet starter opp greit, men når jeg skal koble meg til jboss serveren så får jeg denne feilmeldingen: javax.naming.NoInitialContextException: Need to specify class name in environmen t or system property, or as an applet parameter, or in an application resource f ile: java.naming.factory.initial Det virer som om det er noe med classpathen. Den setter jeg i manifest filen, som ser slik ut: Main-Class: LoggInn_Dialog Class-Path: . oppsett/jbossall-client.jar oppsett/jnp-client.jar oppsett/LoginClient.jar oppsett oppsett/jfree/lib/bsh-1.3.0.jar oppsett/jfree/lib/gnujaxp.jar oppsett/jfree/lib/jcommon-1.0.0-pre3.jar oppsett/jfree/lib/jcommon-xml-1.0.0-pre3.jar oppsett/jfree/jfreereport-core-0.8.5-4.jar oppsett/jfree/jfreereport-gui-base-0.8.5-4.jar oppsett/jfree/jfreereport-gui-config-0.8.5-4.jar osv.. Noen som vet hva som kan være feil, og hvordan jeg får fikset det? Endret 10. mai 2005 av TeddyErt Lenke til kommentar
boemane Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Har litt problemer med å kjøre programmet etter at jeg har lagt filene inn i en jarfil. Selve programmet starter opp greit, men når jeg skal koble meg til jboss serveren så får jeg denne feilmeldingen: javax.naming.NoInitialContextException: Need to specify class name in environmen t or system property, or as an applet parameter, or in an application resource f ile: java.naming.factory.initial Det virer som om det er noe med classpathen. Den setter jeg i manifest filen, som ser slik ut: Main-Class: LoggInn_Dialog Class-Path: . oppsett/jbossall-client.jar oppsett/jnp-client.jar oppsett/LoginClient.jar oppsett oppsett/jfree/lib/bsh-1.3.0.jar oppsett/jfree/lib/gnujaxp.jar oppsett/jfree/lib/jcommon-1.0.0-pre3.jar oppsett/jfree/lib/jcommon-xml-1.0.0-pre3.jar oppsett/jfree/jfreereport-core-0.8.5-4.jar oppsett/jfree/jfreereport-gui-base-0.8.5-4.jar oppsett/jfree/jfreereport-gui-config-0.8.5-4.jar osv.. Noen som vet hva som kan være feil, og hvordan jeg får fikset det? Litt mer info hadde passet bra.. f.eks. hvordan opprettet du .jar filen, og hvordan forsøker du å benytte den i JBoss ? Litt rart med en ContextException for en jar fil. Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 Slik opprettet jeg jar filen: C:\bin>jar cmf test1.mf test.jar classes\*. class interfaces\*.class datamigrering\*.class gui\*.class services\db\*.class services\log\*.class print\*.class print\kvartal\*.class print\*.class Filen er et klientprogram som skal koble seg opp mot jboss og derfor trengs de filene som ligger i classpathen. Jeg lurer på om det kan være filen jndi.properties som den ikke finner. Den ligger i oppsett mappen og det skal være nok å ha mappen i classpathen. Lenke til kommentar
boemane Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Slik opprettet jeg jar filen: C:\bin>jar cmf test1.mf test.jar classes\*. class interfaces\*.class datamigrering\*.class gui\*.class services\db\*.class services\log\*.class print\*.class print\kvartal\*.class print\*.class Filen er et klientprogram som skal koble seg opp mot jboss og derfor trengs de filene som ligger i classpathen. Jeg lurer på om det kan være filen jndi.properties som den ikke finner. Den ligger i oppsett mappen og det skal være nok å ha mappen i classpathen. Er jar filen et klientprogram som skal deployes i JBoss ? I såfall trenger du vel å pakke filen som en .war fil med J2EE struktur ? Eller er jar filen et bibliotek som skal benyttes av et annet program ? Jeg er ikke helt med på hva du mener med "Filen er et klientprogram som skal koble seg opp mot jboss og derfor trengs de filene som ligger i classpathen" Lenke til kommentar
krigun Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Hvordan gjør du oppslag mot ejb'ene med initialcontext? Funker koden når den ikke er i en jar fil? Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 Ja det fungerer fint når jeg ikke har det i jar fil. Da har jeg samme classpath greiene i en bat fil. Der er da jndi.properties som inneholder ipadressen og alt det greiene til serveren. Lenke til kommentar
krigun Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Så problemet er at at du ikke får tak i noen av propertiesa fra jndi.properties fila? har du prøvd en system.out.println og se om du faktisk får tak i dem? Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 det er det eneste jeg kan komme på som det kan være i hvert fall. Feilmeldingen kommer opp med en gang jeg trykker på "logg inn"-knappen. Jeg vet ikke helt hvordan jeg skal skrive det ut på konsollet... Er det mulig å legge inn mapper i classpathen i manifest fila også eller må man ha filer? Lenke til kommentar
krigun Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 (endret) Jeg mistenker at du ikke får lest properties fila di. Hvordan prøver du å lese den filen? Vet at det er litt trixing som må til å lese filer inne i et jar fil.. Det med at denne feilen kommer når du trykker på "login" knappen, er jo antageligvis fordi det er da du gjør oppslag mot EJB'ene. EDIT: Beste måten å lese en fil på inne i en jar fil er: InputStream is = <klassenavn>.class.getResourceAsStream( "/META-INF/Manifest.mf" ); For eksempel... Endret 10. mai 2005 av krigun Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 (endret) Jeg har ikke satt opp at den skal leses, jeg tror det skjer ved at den legges i classpath. Sånn er det i hvert fall når jeg kjørte det fra bat fil. Vet ikke om det blir annerledes når jeg kjører det fra jar? Endret 10. mai 2005 av TeddyErt Lenke til kommentar
krigun Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Ok, intressant.. Fortell, hvordan ser innholdet av jar filen din ut? Har du lagt alle de jar filene inn i en og samme jar fil? Og jeg tror du bare kan si: Class-path: ./oppsett Dette forutsetter at alle jar filene ligger i samme hierarki, og IKKE i samme jar fil, såvidt meg bekjent. Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 Innholdet er at jeg har 4 pakker. Classes, interfaces, lan, print. I tillegg er det en mappe som heter META_INF som inneholder MANIFEST.MF Jeg har ikke lagt noen av de jar filene som jeg setter i classpathen i jar fila. Disse ligger i oppsettmappa som igjen ligger samme sted som jarfila jeg prøver å kjøre. Lenke til kommentar
krigun Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Ok, da skulle det jo funke.. prøvd å endre Class-Path til: Class-Path: ./oppsett ? Og da ligger jndi.properties i oppsett mappa, sant? Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 ja, jndi.properties ligger i oppsett. Hmm, fortsatt samme feilen. Aner ikke hva jeg kan gjøre. Lenke til kommentar
krigun Skrevet 10. mai 2005 Del Skrevet 10. mai 2005 Det er en workaround som antageligvis vil fungere.. Hvis du legger jndi.properties til META-INF mappa i jar filen.. Så henter du ut propertiene ved hjelp av følgende kode: Properties properties = new Properties(); try { properties.load( <klassenavn>.class.getResourceAsStream("/META-INF/jndi.properties) ); } catch (IOException e) { e.printStackTrace(); } String ip = properties.getProperty( "ip-adresse" ); o.s.v... Lenke til kommentar
TeddyErt Skrevet 10. mai 2005 Forfatter Del Skrevet 10. mai 2005 takk for hjelpen, skal prøve det Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå