J'ai voulu réalisé l'exemple de livres moi meme mais j'ai obtenu plusieurs exceptions. en voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 /** * */ package com.sofien.tutoriel.book; import java.util.Hashtable; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import com.sofien.tutoriel.book.remote.BookTestBeanRemote; /** * @author Sofien * */ public class FirstEJB3TutorialClient { /** * @param args */ public static void main(String[] args) { try { /* * Hashtable env = new Hashtable(); * env.put(Context.INITIAL_CONTEXT_FACTORY, * "org.jnp.interfaces.NamingContextFactory"); * env.put(Context.URL_PKG_PREFIXES, * "org.jboss.naming:org.jnp.interfaces"); * env.put(Context.PROVIDER_URL, "localhost:1099"); Context context = * new InitialContext(env); */ Context context = new InitialContext(); BookTestBeanRemote beanRemote = (BookTestBeanRemote) context.lookup(BookTestBean.RemoteJNDIName); beanRemote.test(); } catch (NamingException e) { e.printStackTrace(); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 /** * */ package com.sofien.tutoriel.book.entity; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.SequenceGenerator; import javax.persistence.Table; /** * @author Sofien * */ @Entity @Table(name="book") @SequenceGenerator(name = "book_sequence", sequenceName = "book_id_seq") public class Book implements Serializable{ /** * */ private Integer id; private String title; private String author; /** * @param id * @param title * @param author */ public Book(Integer id, String title, String author) { super(); this.id = id; this.title = title; this.author = author; } @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "book_sequence") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "Book: " + getId() + " Title " + getTitle() + " Author " + getAuthor(); } }Et voiçi les exceptions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 /** * */ package com.sofien.tutoriel.book; import java.util.Iterator; import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import com.sofien.tutoriel.book.entity.Book; import com.sofien.tutoriel.book.local.BookTestBeanLocal; import com.sofien.tutoriel.book.remote.BookTestBeanRemote; /** * @author Sofien * */ @Stateless public class BookTestBean implements BookTestBeanLocal, BookTestBeanRemote { @PersistenceContext EntityManager em; public static final String RemoteJNDIName = "BookTestBean/remote"; public static final String LocalJNDIName = "BookTestBean/local"; /* * (non-Javadoc) * * @see com.sofien.tutoriel.book.local.BookTestBeanLocal#test() */ public void test() { Book book = new Book(null, "My first bean book", "Sebastian"); em.persist(book); Book book2 = new Book(null, "another book", "Paul"); em.persist(book2); Book book3 = new Book(null, "EJB 3 developer guide, comes soon", "Sebastian"); em.persist(book3); System.out.println("list some books"); List someBooks = em.createQuery("from Book b where b.author=:name").setParameter("name", "Sebastian").getResultList(); for (Iterator iter = someBooks.iterator(); iter.hasNext();) { Book element = (Book) iter.next(); System.out.println(element); } System.out.println("List all books"); List allBooks = em.createQuery("from Book").getResultList(); for (Iterator iter = allBooks.iterator(); iter.hasNext();) { Book element = (Book) iter.next(); System.out.println(element); } System.out.println("delete a book"); em.remove(book2); System.out.println("List all books"); allBooks = em.createQuery("from Book").getResultList(); for (Iterator iter = allBooks.iterator(); iter.hasNext();) { Book element = (Book) iter.next(); System.out.println(element); } } }
Merci pour l'aide ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 javax.naming.CommunicationException [Root exception is java.io.InvalidClassException: org.jboss.remoting.InvokerLocator; local class incompatible: stream classdesc serialVersionUID = -4977622166779282521, local class serialVersionUID = -2909329895029296248] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) at javax.naming.InitialContext.lookup(Unknown Source) at com.sofien.tutoriel.book.FirstEJB3TutorialClient.main(FirstEJB3TutorialClient.java:36) Caused by: java.io.InvalidClassException: org.jboss.remoting.InvokerLocator; local class incompatible: stream classdesc serialVersionUID = -4977622166779282521, local class serialVersionUID = -2909329895029296248 at java.io.ObjectStreamClass.initNonProxy(Unknown Source) at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) at java.io.ObjectInputStream.readClassDesc(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at java.rmi.MarshalledObject.get(Unknown Source) at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:652) ... 3 more
PS : djo.mos je m'excuse pour le message en anglais car je l'utilise parfois inconsiement![]()
Partager