Avatar billede jonas82 Nybegynder
22. februar 2005 - 15:51 Der er 20 kommentarer og
1 løsning

Arnes artikel. Problemer med at køre klienten.

Jeg har kørt eksemplet fra Arnes artikel(http://www.eksperten.dk/artikler/182) og jeg har fået deployet til JBoss.

Når jeg prøver at køre klienten får jeg følgende fejl:

Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong name: e_j2ee/Test)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Avatar billede arne_v Ekspert
22. februar 2005 - 15:56 #1
Test.java og Test.class skal ligge i et e_j2ee dir fordi de ligger i
den package og classpath skal sættes til roden d.v.s. det dir som indeholder
e_j2ee dir ikke det som indeholder Test.java og Test.class
Avatar billede jonas82 Nybegynder
22. februar 2005 - 16:05 #2
Det forstod jeg ikke meget af. Hvad er et e_j2ee dir?
Avatar billede arne_v Ekspert
22. februar 2005 - 16:06 #3
Det er bare et "tilfældigt" navn som jeg har valgt til package og directory.
Avatar billede jonas82 Nybegynder
22. februar 2005 - 16:09 #4
Jeg har Test.java og Test.class til at ligge i C:\Testbean_mysql

Alle de compilede class filer ligger i C:\Testbean_mysql\test

Jeg har fulgt eksemplet uden nogen ændringer.
Avatar billede arne_v Ekspert
22. februar 2005 - 16:24 #5
Det nemmeste er bare at slette package i Test.java
Avatar billede arne_v Ekspert
22. februar 2005 - 16:24 #6
Men ellers skal de ned som:

C:\Testbean_mysql\e_j2ee\Test.java
C:\Testbean_mysql\e_j2ee\Test.class
Avatar billede jonas82 Nybegynder
22. februar 2005 - 16:59 #7
Tak. Det afprøver jeg lige imorgen formidag når jeg har adgang til den pc jeg arbejder på.

En god artikel i øvrigt.
Avatar billede jonas82 Nybegynder
23. februar 2005 - 10:01 #8
Min JBoss er gået i baglås. Den vil simpelthen ikke starte mere, den skrever tusindvis af linier fejl når den starter. Jeg har prøvet at slette det og lægge det ind forfra og køre det helt standard, men uden held. Meget sært.

Her er lidt af fejlbeskeden, hvis det siger nogen noget:

org.jboss.deployment.DeploymentInfo@fd9597fb { url=file:/C:/jboss-4.0.1/server/d
efault/deploy/management/web-console.war/ }
  deployer: org.jboss.web.tomcat.tc5.Tomcat5@10d4f27
  status: Deployment FAILED reason: Error during deploy; - nested throwable: (ja
va.lang.ClassNotFoundException: JACC:Error PolicyConfigurationFactory : cannot f
ind class : null)
  state: FAILED
  watch: file:/C:/jboss-4.0.1/server/default/deploy/management/web-console.war/W
EB-INF/web.xml
  altDD: null
  lastDeployed: 1109149121343
  lastModified: 1109149071250
  mbeans:
Avatar billede arne_v Ekspert
23. februar 2005 - 10:41 #9
Hvad peger JAVA_HOME på ?
Avatar billede jonas82 Nybegynder
23. februar 2005 - 10:44 #10
Ok, JBoss kører igen. Ved ikke lige hvad der gik galt. Dette er hvad jeg får ud af consollen når jeg deployer, hvilket vel er som det skal være:

10:37:01,203 INFO  [WrapperDataSourceService] Bound connection factory for resou
rce adapter for ConnectionManager 'jboss.jca:service=DataSourceBinding,name=Test
MySQL to JNDI name 'java:TestMySQL'
10:37:01,484 INFO  [EjbModule] Deploying TestEntity
10:37:01,656 INFO  [EjbModule] Deploying TestSession
10:37:02,781 INFO  [EJBDeployer] Deployed: file:/C:/jboss-4.0.1/server/default/d
eploy/test.jar

Når jeg prøver at køre Test.class uden nogen package, kommer følgende fejl:

C:\Testbean_mysql>javac Test.java

C:\Testbean_mysql>java Test
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.int
aces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException
rg.jnp.interfaces.NamingContextFactory]
        at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
        at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
        at javax.naming.InitialContext.init(Unknown Source)
        at javax.naming.InitialContext.<init>(Unknown Source)
        at Test.main(Test.java:21)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContext
tory
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
        ... 5 more
Avatar billede arne_v Ekspert
23. februar 2005 - 10:46 #11
Du skal have jbossall-client.jar i classpath for client
Avatar billede jonas82 Nybegynder
23. februar 2005 - 10:52 #12
Er ikke lige sikker på det med classpath, men prøvede dette, har kopieret jbossall-client.jar ind i samme folder:

C:\Testbean_mysql>javac -classpath jbossall-client.jar Test.java
Test.java:8: package test does not exist
import test.*;
^
Test.java:25: cannot find symbol
symbol  : class TestSessionHome
location: class Test
TestSessionHome tshome = (TestSessionHome) PortableRemoteObject.narrow(temp, Tes
tSessionHome.class);
^
Test.java:25: cannot find symbol
symbol  : class TestSessionHome etc....
Avatar billede arne_v Ekspert
23. februar 2005 - 10:58 #13
Din client skal også have dit home og remote interface i classpath.

Start med at putte jar filen med det hele i classpath.
Avatar billede jonas82 Nybegynder
23. februar 2005 - 11:13 #14
Jeg forstår ikke rigtig det classpath. Kan jeg sætte det et sted i winxp, eller skal det gøres på commandline? Hvordan får jeg så både test.jar & jbossall-client.jar med?
Avatar billede arne_v Ekspert
23. februar 2005 - 11:21 #15
Jar filerne skal bare adskilles med semikolon.

javac -classpath .;test-ejb.jar;jbossall-client.jar Test.java

java -classpath .;test-ejb.jar;jbossall-client.jar Test
Avatar billede jonas82 Nybegynder
23. februar 2005 - 11:48 #16
Giver mig følgende fejl:

C:\Testbean_mysql>javac -classpath .;test-ejb.jar;jbossall-client.jar Test.java

C:\Testbean_mysql>java -classpath .;test-ejb.jar;jbossall-client.jar Test
javax.naming.NameNotFoundException: ejb not bound
        at org.jnp.server.NamingServer.getBinding(NamingServer.java:491)
        at org.jnp.server.NamingServer.getBinding(NamingServer.java:499)
        at org.jnp.server.NamingServer.getObject(NamingServer.java:505)
        at org.jnp.server.NamingServer.lookup(NamingServer.java:249)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
60)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:701)
        at java.lang.Thread.run(Thread.java:595)
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow
n Source)
        at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
        at sun.rmi.server.UnicastRef.invoke(Unknown Source)
        at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:544)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:520)
        at javax.naming.InitialContext.lookup(Unknown Source)
        at Test.main(Test.java:23)
Avatar billede arne_v Ekspert
23. februar 2005 - 11:54 #17
Selvom det måske ikke ser sådan ud, så går det fremad.

Ligger jboss.xml rigtigt i den test-ejb.jar fil du har deployet ?
Avatar billede jonas82 Nybegynder
23. februar 2005 - 12:56 #18
Tak for opmuntringen :-)

Du havde ret, den var sjovt nok ikke kommet med. Jeg var ellers sikker på den lå i META-INF da jeg lavede jar filen.

Nu brokker JBoos sig når den skal deploye:

MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
ObjectName: jboss.j2ee:jndiName=ejb/LocalTestEntity,service=EJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: Error while fixing tab
le name; - nested throwable: (org.jboss.util.NestedSQLException: Could not creat
e connection; - nested throwable: (org.jboss.resource.JBossResourceException: Fa
iled to register driver for: com.mysql.jdbc.Driver; - nested throwable: (java.la
ng.ClassNotFoundException: No ClassLoaders found for: com.mysql.jdbc.Driver)); -
nested throwable: (org.jboss.resource.JBossResourceException: Could not create
connection; - nested throwable: (org.jboss.resource.JBossResourceException: Fail
ed to register driver for: com.mysql.jdbc.Driver; - nested throwable: (java.lang
.ClassNotFoundException: No ClassLoaders found for: com.mysql.jdbc.Driver))))
ObjectName: jboss.j2ee:service=EJB,plugin=pool,jndiName=ejb/LocalTestEntity
state: CREATED
I Depend On:
Depends On Me:
Avatar billede arne_v Ekspert
23. februar 2005 - 12:58 #19
Har du smidt MySQL JDBC driver jar filen i server/default/lib inden
du startede JBoss ?
Avatar billede jonas82 Nybegynder
23. februar 2005 - 13:01 #20
Nej det var selvfølgelig det. Ser ud til at det virker nu. Den hiver i hvert fald indholdet af tabellen ud :-)

Mange tak for fantastisk hjælp!
Avatar billede arne_v Ekspert
23. februar 2005 - 13:02 #21
Så ligger jeg et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester