Toon posts:

EJB: Session Bean babbelen met JSP

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een vraag, ik ben al bijna 3 uur bezig om mijn JSP pagina te laten babbelen met mijn Session Bean, omdat hij anders zegt dat hij die classes niet kan vinden. Echter krijg ik steeds de volgende melding:

HTTP ERROR: 500 Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
C:\DOCUME~1LOCALS~1Temp\Jetty_0_0_0_0_8080__sms\Storingsmelder\src\ejb
\Storingsmeldermenu$jsp.java:3: Package SmsStoringsmelder not found in import.
import SmsStoringsmelder.*; ^ 1 error, 1 warning


Package is eigenlijk niet anders dan een map en bij de Session Beans heb ik de package voor de Entity Beans geimporteerd en dat loopt als een trein. Nou weet ik dat het anders gaat bij JSP pagina's, maar na veel zoeken en dergelijke kom eigenlijk alleen tot de conclusie dat hij het zou moeten doen, met de volgende import statement in de JSP pagina:

code:
1
2
<%@ page import="SmsStoringsmelder.*, java.util.*, javax.ejb.*,
 javax.naming.*, javax.rmi.PortableRemoteObject, java.rmi.RemoteException" %>


Ik heb ook al geprobeerd om gewoon keihard de classes in te geven, dus als volgt:

code:
1
<%@ page import="StoringsmelderHome, Storingsmelder, java.util.*, etc"


Nou ja jullie raden het al..... ook dit is geen succes...
Weet iemand misschien waar het aan kan liggen? Dat zou wel fantastisch zijn! _/-\o_

Verwijderd

heb je die map dan ook in je "<server-root>/WEB-INF/classes/" gezet?

Verwijderd

Topicstarter
Ik gebruik JBoss als applicatieserver en als je het dan in jboss-3.0.6\server\default\deploy een map aanmaakt (bijv. sms.war) en daarin de verschillende mappen met entitybeans/sessionbeans/jsp zet, kun je simpelweg je localhost aanroepen en dan deployed JBoss het zelf.

Verwijderd

Topicstarter
Blijft wel angstvallig stil zeg!!

Verwijderd

nou ik heb je een vraag gesteld, dus als je daar geen antwoord op geeft dan wordt helpen lastig natuurlijk heh

Verwijderd

Tip: jboss

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Teigetje205: Blijft wel angstvallig stil zeg!!
Jij vindt 7 minuten stilte een angstvallige stilte? Merkwaardige definitie van angstvallig hanteer je :P .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

dit vind ik een vage error:
sun.tools.javac.Main has been deprecated.
sinds wanneer is de javacompiler deprecated?


Dit vond ik met google:

http://www.caucho.com/support/resin-interest/0205/0056.html


edit:
mm, ik zie dat dat blijkbaar geen kwaad kan.. staan al je classpaths goed enzo?

[ Voor 18% gewijzigd door wasigh op 01-04-2003 15:19 ]


Verwijderd

Topicstarter
Angstvallig voor gathering... tenminste vind ik! Maar goed dat is natuurlijk mijn mening...

Markvleth
Om even terug te komen op je vraag, naar mijn idee heb ik die beantwoord door aan te geven dat ik JBoss gebruik en weet dat ik het daar in de juiste map zet......

DeLaNo
Ik gebruik inderdaad JBoss en daar krijg ik ook die prachtige error van terug...

Verwijderd

Wat? Kun je het soms niet onder woorden brengen wat er zo |:( is aan mijn opmerking?

Verwijderd

classes die je gebruikt bij een jsp pagina moeten in de map ../WEB-INF/classes, dus mijn vraag is of ze daar ook daadwerkelijk staan, aangezien je aangeeft dat in jsp niet werkt gok ik dat je ze "naast" je jsp hebt staan

Verwijderd

Topicstarter
wasigh schreef op 01 April 2003 @ 15:17:
dit vind ik een vage error:

[...]

sinds wanneer is de javacompiler deprecated?


Dit vond ik met google:

http://www.caucho.com/support/resin-interest/0205/0056.html


edit:
mm, ik zie dat dat blijkbaar geen kwaad kan.. staan al je classpaths goed enzo?
Ook de classpaths heb ik al meerder malen bekeken en ik kan er geen fout aan ontdekken...... Verder begrijp ik uit de link dat de waarschuwing niet schadelijk is, maar dat je daar wel mee blijft zitten, omdat je het niet kan redirecten ofzo... dus...

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

hier beschrijven ze een mogelijke oplossing:
http://www.tek-tips.com/g...ev3/13/pid/877/qid/364406


overigens: google geeft mijn 200.000 hits:
http://www.google.nl/sear...e+not+found+in+import&lr=

[ Voor 37% gewijzigd door wasigh op 01-04-2003 15:26 ]


Verwijderd

Topicstarter
Verwijderd schreef op 01 April 2003 @ 15:22:
classes die je gebruikt bij een jsp pagina moeten in de map ../WEB-INF/classes, dus mijn vraag is of ze daar ook daadwerkelijk staan, aangezien je aangeeft dat in jsp niet werkt gok ik dat je ze "naast" je jsp hebt staan
Ik heb het niet in mijn WEB-INF staan... ik heb alles staan in jboss-3.0.6\server\default\deploy\sms.war\Storingsmelder\src\ejb en daarin staan de volgende mappen:

1. Entity Beans
2. Session Bean
3. JSP
4. Util (code om debug info makkelijker weer te geven)

Verwijderd

lijkt me stug dat dat gaat werken, of JBoss deployed wel erg makkelijk, maar daarmee zouden ze tegen de regels van deployement ingaan. classes die je gebuikt voor je JSP staan nou eenmaal in WEB-INF/classes/- , De beans behoren appart gedeployed te worden

Verwijderd

Topicstarter
Ik heb onder de JBoss directory zitten kijken en voor elk deploy project is er een WEB-INF map aangemaakt... met daarin een map "classes"....
Dus ik heb het volgende gedaan sms.war/WEB-INF/classes/ en daarin de mappen van de beans... de rest staat in een map direct onder sms.war. Is dat de bedoeling of begrijp ik je niet goed??
In ieder geval heb ik dan nog steeds dezelfde foutmelding....

Verwijderd

Ik begrijp je niet helemaal goed maar:

Zo moet het normaliter, voor een normale war:
code:
1
2
3
4
5
6
Root/ - 
       |-WEB-INF/ -
       |          | - web.xml
       |          | - classes/
       |
       |- index.jsp

Verwijderd

Topicstarter
Dank voor de tip dit werkt inderdaad! Ik zit nu alleen met het probleem dat ik geen ejb connectie kan maken.... zo heb ik een voorbeeld applicatie van school gepakt maar dan geeft hij de melding : "ejb not bound" en zegt daarbij dat hij geen connectie met de Bean kan maken. :'(
Een vriend van mij heeft ditzelfde probleem en komt er ook niet uit!

Nou heb ik gehoord dat je wat zou moeten aanpassen in standardjboss.xml om een connectie te kunnen maken met een bean, maar ik heb hier eens naar gekeken, maar dit lijkt mij erg sterk omdat in deze xml file gewoon de standaard communicatie van Jboss met bijv. een stateful session bean wordt vastgelegd.
Echter vraag ik mij nou wel af hoe ik dan in een vredesnaam die beans connected krijg en hoe ik instellingen kan maken als ik wil een cmp entity bean en een stateful session bean?!

Verwijderd

Verwijderd schreef op 01 april 2003 @ 15:18:
[...]

Wat? Kun je het soms niet onder woorden brengen wat er zo |:( is aan mijn opmerking?
Nee? Ik heb een probleem met PHP bla bla bla. En dan krijg je als antwoord: "Tip: Apache" Oh... logisch...

:?

Verwijderd

Verwijderd schreef op 02 april 2003 @ 10:49:
[...]

Nee? Ik heb een probleem met PHP bla bla bla. En dan krijg je als antwoord: "Tip: Apache" Oh... logisch...

:?
Ik ging er even vanuit dat ie alles los draaide, heb ik ook ooit mee lopen kloten, toen de complete all in one jboss gedaan en had ik geen problemen meer. Daarom dus.

Verwijderd

Topicstarter
kunnen we misschien on-topic blijven??

Verwijderd

heb je ook een deployement descriptor geschreven voor je bean? dus een ejb-jar.xml (exacte naam), die moet in de META-INF van je bean-jar

  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Je Meta - Inf is toch een bij-product van ANT??? Daar staat toch geen spullen in die belangrijk zijn voor het runnen van je applicatie?

Je ejb-jar moet volgens mij in je web-inf staan. :S

Verwijderd

IJsbeer79 schreef op 02 April 2003 @ 11:10:
Je Meta - Inf is toch een bij-product van ANT??? Daar staat toch geen spullen in die belangrijk zijn voor het runnen van je applicatie?

Je ejb-jar moet volgens mij in je web-inf staan. :S
nee in je META-INF...
en nee het is geen bijproduct van Ant...

Verwijderd

Alhoewel we bij onze applicatie niet direct vanuit JSP/Servlet connectie maken met EJBs die gedeployed zijn hebben we voor onze cactus unit testen wel zoiets dergelijks gedaan.

zoals markvleth al heeft aangegeven ligt het waarschijnlijk aan het feit dat je EJBs niet gedeployed zijn. Is heel makkelijk te zien door te kijken op http://localhost:8080/jmx-console/ van je machine. Daat staat een JMX overzicht van je complete JBoss configuratie. Kijk daar eens onder het kopje "jboss.j2ee". Er zou zoiets als dit :"jndiName=BeanName,service=EJB" moeten staan.

Staan daar je EJBs niet bij dan zijn ze niet deployed.

Het deployen van je EJBs en je JSP pagina's gebeurt in principe in twee verschillende archives. Een jar voor je EJBs en een war voor je JSP paginas.

Wil je deze beide dan toch in 1 archive deployen dan kun je ze nog samenvoegen tot een Ear.

Al deze packages hebben alleen wel, zoals al gezegd is een deployment descriptor nodig.

Voor JBoss zijn dat:

Ear:
- application.xml : j2ee standard descriptor, geeft aan welke modules er in dit archive zitten.
- jboss-app.xml : JBoss specifiek, heb je niet nodig tenzij je met (jboss specifieke) service archives (sar) of een loader repository aan wil geven.

Jar:
- ejb. xml : j2ee standard desciptor.
- jboss.xml : jboss specifieke descriptor
- jbosscmp-jdbc.xml : Container Managed Persistence mapping.

War:
- web.xml : j2ee standard descriptor
- jboss-web.xml : jboss specifiek.

Niet alles zal nodig zijn, maar zover ik weet verwacht jboss ze wel en zal klagen als ze er niet zijn.

standardjboss.xml zul je echt niet aan hoeven te passen. Je kunt er wel leuke dingen mee doen, bijvoorbeeld door het veranderen van 1 lettertje de performance verdubbelen/halveren etc. Maar voordat je daaraan begint zou ik eerst de JBoss documentatie maar eens goed doorlezen.

  • GambitRS
  • Registratie: Juni 2001
  • Laatst online: 13-06-2013

GambitRS

w00t

Verwijderd schreef op 01 April 2003 @ 15:18:
[...]

Wat? Kun je het soms niet onder woorden brengen wat er zo |:( is aan mijn opmerking?
Verwijderd schreef op 01 April 2003 @ 15:02:
Ik gebruik JBoss als applicatieserver

MechWarrior || Monsters Game


Verwijderd

Topicstarter
Ok ik heb nu een EAR.. maar waar moet ik dat dan neerzetten?? want ik heb hem nu in de META-INF... en dan gebeurt er dus helemaal niets.

Verwijderd

een ear, is een archief met daarin beans en servlets...
Sosume heeft het volgens mij netjes opgeschreven, kijk daar nog is naar

Verwijderd

Jaja het is wel duidelijk nu, ik had er overheen gelezen, sorry dat ik wilde helpen hoor. :Z

Verwijderd

Zorg als eerste dat je een Jar hebt die je beans goed deployed. Heb je die zorg dan dat de war zonder fouten deployed.

Wil je die dan in een ear zetten zorg dat je dan de volgende structuur hebt.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
+-META-INF/MANIFEST.MF
+-META-INF/jboss-app.xml
+-META-INF/application.xml
+-allYourBeans.jar
|   +- META-INF/MANIFEST.MF 
|   +- META-INF/ejb-jar.xml
|   +- META-INF/jboss.xml
|   +- META-INF/jbosscmp-jdbc.xml
|   +- com/somethign/something/BoonBean.class
|   +- com/somethign/something/BoonLocal.class
|   +- com/somethign/something/BoonLocalHome.class
|   +- com/somethign/something/...
+-yourWebApp.war
|   +- META-INF/MANIFEST.MF 
|   +- WEB-INF/ -
|          +- web.xml
|          +- jboss-web.xml
|          +- classes/
|   +- index.jsp


En deze ear zet je in de deploy van JBoss.

Verwijderd

...

[ Voor 92% gewijzigd door Verwijderd op 02-04-2003 12:25 ]


  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Kan ik al die xml bestanden ergens mee genereren? Met die standaard j2ee server van Sun (niet one) had je de deploytool die dat allemaal deed. Kent JBoss ook zoiets?? :S

Verwijderd

Ik raad aan om eens goed naar XDoclet te kijken. Dit is de tool die ik daarvoor gebruik.

xdoclet.sourceforge.net

Met behulp van javadoc tags geef je aan wat je bean precies doet. Aan de hand van die tags genereerd XDoclet je local/remote/home interfaces, je xml files en je applicatie server specifieke descriptor files. Dit gebeurt allemaal vanuit een Ant task.

Het enige wat je dan zelf nog moet doen is alles samen pakken in een ear/jar/war file, maar daar zijn ook ant tasks voor.

Werkt erg makkelijk.

  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
XDocLet. Ok, maar dan moet ik eerst weer die hele zooi verbouwen, zodat XDocLet aan de gang kan gaan. Daar heb ik dus geen zin in. Is het nu zo moeilijk om gewoon een een jsp en een sessie bean aan de gang te krijgen, zonder dat je allerlei fratsen moet uitvoeren???

Microsoft is zo gek nog niet! :(

  • IJsbeer
  • Registratie: Juni 2001
  • Niet online
Het is toch te gek dat de standaard deploytool het wel kan en een betere server als JBoss dat niet kan?? :S

Verwijderd

dan vraag ik me dus ook af wat beter is. Waarom noem je JBoss dan beter???

Verwijderd

Heel veel van die xml bestanden heb je net zo goed nodig voor de sun j2ee server als voor jboss. ejb-jar.xml, web.xml en application.xml zijn standard j2ee gespecificeerde descriptors en die zul je ook niet aan hoeven te passen als je overgaat van sun naar ibm naar bea naar orion naar oracle etc..

Wat je dan natuurlijk wel overhoudt zijn de applicatie server specifieke descriptor files. Ik weet niet of die door de sun deploytool gegeneerd werden, maar zover ik weet heeft JBoss geen grafische deploytool die je jboss specifieke descriptors genereerd (AFAIK, heb het nog nooit gezocht namelijk).

Ik vindt niet dat de grafische wizards/tools/andere ongein die vaak meegeleverd wordt bepaald of iets een goede applicatie server is of niet. Ik vindt goede implementatie van een standaard, goede documentatie (waar JBoss niet goed in is), en vooral makkelijk in development veel belangrijker.

Het is ook helemaal niet moeilijk om een jsp en een sessie bean aan elkaar te koppelen. Maar je moet wel heel nauwkeurig de specificaties volgen anders komt er inderdaad niks van terecht.

Ik snap de referentie naar Microsoft niet helemaal, want om met microsoft een netter n-tier applicatie op te zetten moet je je ook aan de specificatie houden. Ik moet wel toegeven dat microsoft het met al zijn GUI's, wizards veel makkelijker maakt. Ik ben zelf alleen niet helemaal voor het allemaal gebruiken van wizards voor alle zaken die je tegenkomt. Om ergens goed mee te kunnen werken zul je ook moeten weten hoe het tot een bepaald niveau 'onderwater' werkt.

Er zijn genoeg tools (ant, xdoclet etc). Die het generieke simpele copy werk voor je uit handen nemen, maar waar je nog wel genoeg van heel het J2EE verhaal moet begrijpen om er goed mee te kunnen werken.
Pagina: 1