Netbeans EJB应用中的CORBA异常

Netbeans EJB应用中的CORBA异常,netbeans,glassfish,ejb,marshalling,corba,Netbeans,Glassfish,Ejb,Marshalling,Corba,我对EJB/Glassfish有问题。我正在开发一个客户机-服务器应用程序,在该应用程序中,客户机创建一个实体对象,并且必须将其发送到服务器应用程序,服务器应用程序必须将该实体保存在其数据库中。我选择使用会话bean与服务器通信。 我已经实现了一些简单的案例,其中会话bean中的方法将字符串或int作为输入,并且工作正常。当我尝试将实体对象作为输入时,问题就出现了 我报告我的实体类: @Entity public class Example implements Serializable { p

我对EJB/Glassfish有问题。我正在开发一个客户机-服务器应用程序,在该应用程序中,客户机创建一个实体对象,并且必须将其发送到服务器应用程序,服务器应用程序必须将该实体保存在其数据库中。我选择使用会话bean与服务器通信。 我已经实现了一些简单的案例,其中会话bean中的方法将字符串或int作为输入,并且工作正常。当我尝试将实体对象作为输入时,问题就出现了

我报告我的实体类:

@Entity
public class Example implements Serializable {
private static final long serialVersionUID = 1L;
@Id
String nome;

public void setNome(String nome) {
    this.nome = nome;
}

public String getNome() {
    return nome;
}
这里是我的会话bean:

 @Stateless
 public class GestoreLibreriaRemoto implements GestoreLibreriaRemotoRemote {

 @Override
 public String getProva(Example prova) {
    return prova.getNome();
 }
这里是我的客户端应用程序:

public class GestoreLibreriaLocale {

public static void assegnaCategoriaACopia(CopiaUtente copia, Categoria categoria) throws 

public void prova() {
   GestoreLibreriaRemotoRemote gestore = lookupGestoreLibreriaRemotoRemote();
   Example example = new Example();
   prova.setNome("hodor");
   System.out.println(gestore.getProva(example));
}

private  GestoreLibreriaRemotoRemote lookupGestoreLibreriaRemotoRemote() {
    try {
        Context c = new InitialContext();
        return (GestoreLibreriaRemotoRemote) c.lookup("java:global/ServerMDB/ServerMDB-ejb/GestoreLibreriaRemoto");
    } catch (NamingException ne) {
        Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
        throw new RuntimeException(ne);
    }
}
在我的主类中,我只需调用gestoreLibreralocale.prova(),就会得到以下错误:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446)
at org.glassfish.appclient.client.AppClientFacade.main(AppClientFacade.java:166)
    Caused by: javax.ejb.EJBException: java.rmi.MarshalException: CORBA MARSHAL 1330446346     Maybe; nested exception is: 
org.omg.CORBA.MARSHAL: ----------BEGIN server-side stack trace----------
    org.omg.CORBA.MARSHAL: AVVERTENZA: 00810010: Error from readValue on ValueHandler in     CDRInputStream  vmcid: OMG  minor code: 10 completed: Maybe
at com.sun.proxy.$Proxy139.valuehandlerReadError(Unknown Source)
    at    com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:912)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1005)
at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:518)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$14.read(DynamicMethodMarshallerImpl.java:383)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readArguments(DynamicMethodMarshallerImpl.java:450)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:171)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.corba.ee.impl.io.IIOPInputStream
at com.sun.corba.ee.impl.io.ValueHandlerImpl.createInputStream(ValueHandlerImpl.java:820)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:263)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:903)
... 16 more
错误日志仍在继续,我不会报告整个日志,但如果您需要,我可以发布它。 请帮帮我,我从几天起就一直在努力解决这个问题。 谢谢大家的关注,
Francesco

这似乎是当前Java版本中的一个bug(例如
1.7.0_55
1.8.0_05
),请查看此问题:

要使其正常工作,请安装较旧或较新的Java版本(例如
1.7.0\u 051
1.8.0\u 020

另请参见:


这似乎是当前Java版本(例如
1.7.0_55
1.8.0_05
)中的一个缺陷,请查看此问题:

要使其正常工作,请安装较旧或较新的Java版本(例如
1.7.0\u 051
1.8.0\u 020

另请参见:


您安装了哪个JDK版本(确切版本号)?在netbeans首选项中显示为JDK 1.8,在控制台中执行java-version,输出为:java版本“1.8.0\u 05”您安装了哪个JDK版本(确切版本号)?在netbeans首选项中显示为JDK 1.8,在控制台中执行java-version输出为:java版本“1.8.0_05”我已经安装了jdk 1.7.0_051,但我收到了相同的错误您是否确保GlassFish使用此jdk?您可以在服务器运行时的属性中为NetBeans中的服务器运行时设置JDK。在OS X Yosemite上运行JDK 1.8.0_25和Glassfish 4.0时,我遇到了相同的错误。我已经安装了JDK 1.7.0_051,但我遇到了相同的错误。您是否确保Glassfish使用此JDK?您可以在服务器运行时的属性中为NetBeans中的服务器运行时设置JDK。在OS X Yosemite上运行JDK 1.8.0_25和Glassfish 4.0时,我会遇到相同的错误。