Gå til innhold

Anbefalte innlegg

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 av TeddyErt
Lenke til kommentar
Videoannonse
Annonse
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

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
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

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

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 av krigun
Lenke til kommentar

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 av TeddyErt
Lenke til kommentar

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...