2012-05-08 23 views
0

一個bean我嘗試從客戶端列出所有使用此方法JBOSS:EJB如何解決java.lang.reflect.UndeclaredThrowableException?

public List<Article> listerLesArticles() { 
    javax.persistence.Query req = manager.createQuery("select * from Article"); 
    return req.getResultList(); 
} 

的文章時,我調用的方法內

public void lister(){ 
    List<Article> arr=epicerie.listerLesArticles(); 
    System.out.println(" "); 
    Iterator<Article> iterator = arr.iterator(); 
    while (iterator.hasNext()) { 
     Article unArticle=iterator.next(); 
     System.out.println(unArticle.getCode()); 
    } 
    System.exit(0); 
} 

我有這個excaption

Exception in thread "main" java.lang.reflect.UndeclaredThrowableException 
at $Proxy2.listerLesArticles(Unknown Source) 
at ecpicerie.EpicerieClient.lister(EpicerieClient.java:80) 
at ecpicerie.EpicerieClient.main(EpicerieClient.java:122) 

所致:java.lang.ClassNotFoundException:org.hibernate.hql.ast.QuerySyntaxException at org.jboss.remoting.serialization.ClassLoaderUtility .loadClass(ClassLoaderUtility.java:103) 在org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:86) 在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) 在java.lang中.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:176) at java.io. ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1592) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749) at java.io.ObjectInputStream。 readObject0(ObjectInputStream.java:1346) 在java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963) 在java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887) 在java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) 在java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887) at java。在java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) at java.io.ObjectInputStream.readObject0 Ø bjectInputStream.readSerialData(ObjectInputStream.java:1887) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) at java.io.ObjectInputStream。 readObject(ObjectInputStream.java:368) at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:238) at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject( JavaSerializationManager.java:138) at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:123) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:1215)org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:845) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:160) at org.jboss.remoting.Client。調用(Client.java:1708) at org.jboss.remoting.Client.invoke(Client.java:612) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60) at org。 jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(的MethodInvocation。的java:102) 在org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65) 在org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 在有機jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) at org.jboss.aspects.remoting.PojiProxy.invoke( PojiProxy.java:62) at $ Proxy3.invoke(Unknown Source) at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261) at org.jboss.ejb3.proxy.handler。 session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101) at $ Proxy2 .listerLesArticles(未知來源) 在ecpicerie.EpicerieClient.lister(EpicerieClient.java:80) 在ecpicerie.EpicerieClient.main(EpicerieClient.java:122) 在org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor。的java:72) 在org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 在org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) 在org.jboss。 aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext( MethodInvocation.java:102) at org。 jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) at org.jboss.aspects.remoting.PojiProxy.invoke( PojiProxy.java:62) at $ Proxy3.invoke(Unknown Source) at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261) at org.jboss.ejb3.proxy.handler。 session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101) ... 3個

在這條線

List<Article> arr=epicerie.listerLesArticles(); 

請如何解決

感謝

回答

0

試試你的HQL查詢設置爲: 「從文章」。造成這種情況的根本原因似乎是您獲得HQL語法異常,但無法將其序列化到您的客戶端應用程序,因爲它沒有JPA的罐子。

編輯:正如在Achille的評論中,「從e條中選擇e」也可以。

+0

好的,謝謝我改變了「選擇e從文章e」 – chillo

1

你有兩個基本問題:

  • 你JPQL查詢是錯誤的
  • 您的客戶端沒有所需的所有客戶端庫

參見查詢對方的回答,但實現通過修復查詢,您只解決了一半問題。你的服務器的文檔應該告訴你哪些庫需要被複制(在JBoss的情況下,它基本上是整個/客戶端庫)。