xpetstore ejb sample application läuft nicht :-(((

Status
Nicht offen für weitere Antworten.
L

Lars80

Gast
Hallo Ihr,

ich suche gerade den Einstig in EJB, XDoclet & Co und nachdem ich nun einen ganzen Tag verbraten habe, die xpetstore sample Applicaton

http://xpetstore.sourceforge.net/index.html

zum Laufen zu kriegen, wollte ich mal fragen, ob das jemand schonmal hingekriegt hat. Es ist zum verrücktwerden, ich habe alles genau nach Anleitung mehrmals gemacht.

1) JBoss Setup
http://xpetstore.sourceforge.net/setup_jboss-3.0.x.html

2) Run the Application
http://xpetstore.sourceforge.net/run.html

wobei sich die Tasks build.sh und build.sh deploy fehlerfrei ausführen lassen
build.sh test und build.sh db brechen mit folgendem fehler ab:

init:
[echo] Database=hsqldb

data:
[sql] Executing file: /home/eclipse/JBoss/jboss-3.2.7/server/xpetstore/xpetstore-ejb/sql/data.sql
[sql] Failed to execute: DELETE FROM T_COUNTER

BUILD FAILED
/home/eclipse/JBoss/jboss-3.2.7/server/xpetstore/xpetstore-ejb/build-database.xml:40: java.sql.SQLException: Table not found: T_COUNTER in statement [DELETE FROM T_COUNTER]

HSQL DB läuft und ist konfiguriert.

Immerhin lässt sich die Startseite
http://localhost:8080/xpetstore-ejb
anzeigen, wenn ich hier allerdings was anklicke

kommt folgendes:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Could not dereference object
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:507)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:448)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
xpetstore.web.filter.SignOnFilter.doFilter(Unknown Source)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(Unknown Source)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(Unknown Source)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)

root cause

javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: PetstoreLocal not bound]
org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1047)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:681)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:697)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:568)
javax.naming.InitialContext.lookup(InitialContext.java:347)
xpetstore.services.petstore.util.PetstoreUtil.getLocalHome(Unknown Source)
xpetstore.web.struts.action.BaseAction.getPetstore(Unknown Source)
xpetstore.web.struts.action.category.CategoryAction.doExecute(Unknown Source)
xpetstore.web.struts.action.BaseAction.execute(Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
xpetstore.web.filter.SignOnFilter.doFilter(Unknown Source)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(Unknown Source)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(Unknown Source)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)

root cause

javax.naming.NameNotFoundException: PetstoreLocal not bound
org.jnp.server.NamingServer.getBinding(NamingServer.java:490)
org.jnp.server.NamingServer.getBinding(NamingServer.java:498)
org.jnp.server.NamingServer.getObject(NamingServer.java:504)
org.jnp.server.NamingServer.lookup(NamingServer.java:277)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:606)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:568)
javax.naming.InitialContext.lookup(InitialContext.java:347)
org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1041)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:681)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:697)
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:568)
javax.naming.InitialContext.lookup(InitialContext.java:347)
xpetstore.services.petstore.util.PetstoreUtil.getLocalHome(Unknown Source)
xpetstore.web.struts.action.BaseAction.getPetstore(Unknown Source)
xpetstore.web.struts.action.category.CategoryAction.doExecute(Unknown Source)
xpetstore.web.struts.action.BaseAction.execute(Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
xpetstore.web.filter.SignOnFilter.doFilter(Unknown Source)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(Unknown Source)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(Unknown Source)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.
Apache Tomcat/5.0.30

Die entsprechende sql Datei sieht so aus, ich frage mich wo hier die Tabellen defniert werden, in dem ganzen Projekt habe ich keine Tabellendefinitionen gefunden ?:

Code:
-- Cleanup
DELETE FROM T_COUNTER;
DELETE FROM T_ORDER_ITEM;
DELETE FROM T_ORDER;
DELETE FROM T_CUSTOMER;
DELETE FROM T_ITEM;
DELETE FROM T_PRODUCT;
DELETE FROM T_CATEGORY;
DELETE FROM T_ACCOUNT;

-- Load
INSERT INTO T_ACCOUNT VALUES ( 'user1', 'password1' );
....

INSERT INTO T_CUSTOMER VALUES ( 'user1', 'firstname1', 'lastname1', 'herve@localdomain', '111-1111', 'en', 'street1.1', 'street1.2', 'city1', 'ST1', 'A1B-1C1', 'US', '111-111-111', 'Visa', '01-11', 'user1' );
INSERT INTO T_CUSTOMER VALUES ( 'user2', 'firstname2', 'lastname2', 'daniele@localdomain', '222-2222', 'en', 'street2.1', 'street2.2', 'city1', 'ST2', 'A2B-2C2', 'US', '222-222-222', 'Visa', '02-22', 'user2' );

INSERT INTO T_CATEGORY VALUES ('FISH', 'Fish', 'description of FISH' );
...

INSERT INTO T_PRODUCT VALUES ('FI-SW-01', 'Angelfish', 'Saltwater fish from Australia', 'FISH');
...

INSERT INTO T_ITEM  VALUES ('EST-1', 'Large', '16.50', '10.00',  'fish1.jpg', 'FI-SW-01');
...

INSERT INTO T_COUNTER VALUES('Customer', 1000);

Hat schonmal jemand diese Applikation zum Laufen gebracht?

Vielen Dank im voraus!
 
L

Lars80

Gast
also derjenige,

der das xpetstore komplett zum laufen kriegt und mir nach übermittlung meiner anleitung sagt, wo der fehler ist, bekommt von mir ein eis oder bei angabe der bankdaten 10 € überwiesen. danke.

hier gibts nochmal eine bessere anleitung, aber es läuft immer noch nicht bei mir.

http://www.inf.fu-berlin.de/inst/ag-se/teaching/V-J2EE-2005/22U_j2ee_infrastruktur.pdf

"Falls ant db nichts tut (das ist aus unbekanntem Grund bei mir der Fall),
verwenden Sie statt dessen den DatabaseManager von hsqldb (java -cp
$HSQLDB_HOME/lib/hsqldb.jar org.hsqldb.util.DatabaseManager) mit
Type= 'HSQL Database Engine Server' (auf der Login-Maske anzugeben)
und natürlich wieder auf Port 1701 (im Feld URL anzufügen) und laden Sie
per File->OpenScript die Datei $XPETSTORE_HOME/xpetstoreejb/
sql/data.sql und führen Sie sie aus. JBoss muss dabei natürlich laufen,
weil sonst der hsqldb-Server nicht läuft."


ich scheitere bei dem letzten punkt, da ant db auch bei mir nichts tut, nachdem ich aber das skript lade und ausführe
bekomme ich jedesmal diesen Fehler obwohl nun 3 mal alles strikt nach Anleitung durchgeführt habe.

java.sql.SQLException: Table not found in statement [-- Cleanup
DELETE FROM T_COUNTER]
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.execute(Unknown Source)
at org.hsqldb.util.DatabaseManagerSwing.executeSQL(Unknown Source)
at org.hsqldb.util.DatabaseManagerSwing.access$800(Unknown Source)
at org.hsqldb.util.DatabaseManagerSwing$StatementExecRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
sseibel@seymour:~/eclipse/hsqldb/hsqldb$ java -classpath lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
Failed to load preferences. Proceeding with defaults:
 
G

Guest

Gast
1) Das ganze ist verdammt chaotisch implementiert (zig verstreute Dateien mit Einstellungen etc.)
2) Es verwendet irgendeine archaische Version von XDoclet
3) Es ist für JBoss 3.0, nicht 3.2.7 (den hast du, wie ich sehe)
4) Es ist 21:45 Uhr, ich wohne im Dachgeschoss und die Hitze macht mich irre. ;)

Wenn du dich mit XDoclet beschäftigen möchtest und dies als Beispiel nehmen wolltest,
vergiss es gleich. Die Beispiele, die bei XDoclet dabei sind, sind besser zum Lernen bzw.
einfacher gestrickt.

KSG9|sebastian ist vermutlich beim Versuch gestorben. :D
 
G

Guest

Gast
Noch etwas. Du findest keinen SQL-Code, der die Tabellen erzeugt, da dies
automagisch beim Deployen der Anwendung geschieht.
Siehe jboss-Tags
Code:
@jboss.persistence
 *      create-table="${jboss.create.table}"   <-- Das hier veranlasst JBoss dazu die Tabellen beim Deployen zu erzeugen, wenn sie nicht existieren
 *      remove-table="${jboss.remove.table}"
Das ganze unter der Voraussetzung, dass du eine xpetstoreDS eingerichtet
hast, da bei JBoss HSQLDB defaultmässig als DefaultDS deployed ist
und ...gähn...

Vergiss es. Es macht dich nur kirre und bringt dir nichts, wenn du etwas lernen
willst.
 

noobster

Aktives Mitglied
auch ohne java kenntnise kann ich dir sagen das eine anwendung die daten aus einer datenbank erwartet die allerdings nicht vorhanden sind nicht laufen wird, egal in welcher Sprache.

ich hätte da noch ne kleine frage, weil ich las da>> sap db <<in der anleitung zum setup der jdbc....

deine db antwortet aber als hsql datenbank???????????????????????? falscher pfad zur db??
 
L

Lars80

Gast
ok jungs, ich hab es langsam kapiert. XPetstore ist nix zum lernen. Nur sehr ärgerlich, wieviel Zeit ich nun damit verbraten habe. Tja, nicht jedes projekt, das auf sourceforge oder sonst wo vor sich hin schlummert ist auch wirklich was wert. bin nun besser mit einem guten buch und den entsprechenden xdoclet docs bedient.

Und danke für deine Ausführungen zur DB, Gast. Ist mir nun klar.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Tomcat Application Path bestimmen Allgemeines EE 0
B Logging (log4j) in JAVA EE application - WildFly Allgemeines EE 15
L Spring REST Application (Data Retrive) API und Architectur hilfe Allgemeines EE 11
S FAIL - Deployed application at context path /Address but context failed to start Allgemeines EE 1
T Fertiges html javascrip css template in java EE application Allgemeines EE 0
Y Caching Application Allgemeines EE 20
P Subprozess auf Application Server ausführen Allgemeines EE 6
S Rich Client Application mit Eclipse/WebLogic/EclipseLink/EJB3 Allgemeines EE 2
G Login into Web Application Allgemeines EE 9
P Nur ein User für Web Application Allgemeines EE 11
J Wicket-Projekt: "Unable to create application..." Allgemeines EE 2
MQue Java Web- Application -> MVC Allgemeines EE 4
D Wohin mit Resourcen (Bilder, txt Dateien) im Application Client Allgemeines EE 3
S Unterschied zwischen Tomcat und Application Server? Allgemeines EE 3
MQue Application Server Allgemeines EE 61
K Glassfish Application Client Allgemeines EE 4
N Objekte zwischen zwei Application Contexts austauschen Allgemeines EE 19
K Java Application Server + ganttproject *.jar Anwendung Allgemeines EE 6
J prozesse aus der application-bean threadfähig? Allgemeines EE 4
flashfactor Gibt es ein Case Management für Java Application Server? Allgemeines EE 6
M Java Application Server in einem ungesunden Zustand Allgemeines EE 4
F Application in HttpServlet abfragen? Allgemeines EE 5
X Sun Application Server 9 - EJB3 Zugriffsproblem Allgemeines EE 2
H Test Application für Tomcat Allgemeines EE 3
T statische Methoden versus Application-Bean Allgemeines EE 2
K Datei schreiben in einer Web-Application Allgemeines EE 3
G Application Server! Gibt es eine grundsätzliche Architektur? Allgemeines EE 9
M Übersicht über Application Server Allgemeines EE 3
B Sun Application Server 8 --- Nichtsaussagende Fehlermeldung Allgemeines EE 2
M Debugging mit Eclipse / Web-Application Allgemeines EE 2
B Was kostet ein Application Server Allgemeines EE 18
K Sun Application Server - Servlets laufen nicht Allgemeines EE 2
E Web-, EJB-Container - Application Server Allgemeines EE 6
R Problem beim hochladen einer Web Application Allgemeines EE 16

Ähnliche Java Themen

Neue Themen


Oben