kingquake21ID:kingquake21
6994次访问,排名14084(2)好友2人,关注者6
kingquake21的文章
原创 34 篇
翻译 0 篇
转载 6 篇
评论 1 篇
最近评论
mohroq:wow gold,
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky

      原创 在J2SE的客户端使用JNDI查找部署在JBOSS上的EJB3.0收藏

      新一篇: InitialContext的问题 | 旧一篇: 启动Netbean 6.0

      这个问题缠了我好久,写好了EJB却总是无法在J2SE的客户端进行调用。在JBOSS的JNDIView中也能看到我那部署好的EJB,可是每当运行下面的代码却总是报同样的异常。

      InitialContext ctx = new InitialContext();
      HelloWorld fileservice 
      = (HelloWorld )ctx.lookup(HelloWorld .class.getName());
      javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: org.jboss.proxy.ejb.EJBMetaDataImpl (no security manager: RMI class loader disabled)]
          at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:
      713)
          at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:
      572)
          at javax.naming.InitialContext.lookup(InitialContext.java:
      351)
          at test.ServiceTest.main(ServiceTest.java:
      33)
      Caused by: java.lang.ClassNotFoundException: org.jboss.proxy.ejb.EJBMetaDataImpl (no security manager: RMI 
      class loader disabled)
          at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:
      371)
          at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:
      165)
          at java.rmi.server.RMIClassLoader$
      2.loadClass(RMIClassLoader.java:620)
          at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:
      247)
          at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:
      197)
          at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:
      1538)
          at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:
      1460)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
      1693)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:
      1299)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:
      1912)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
      1836)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
      1713)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:
      1299)
          at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:
      1912)
          at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:
      1836)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
      1713)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:
      1299)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:
      339)
          at java.rmi.MarshalledObject.get(MarshalledObject.java:
      135)
          at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:
      57)
          at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:
      637)
          ... 
      3 more

       发现org.jboss.proxy.ejb.EJBMetaDataImpl 这个class无法找到,估计很可能是有一些必要的包没有导进去。google了一下,有人提示说问题很有可能是没有导入client结尾的包。试着导入了下面这些包(都在JBOSS根目录下)

      /client/jboss-client.jar
      ./client/jboss-common-client.jar
      ./client/jboss-transaction-client.jar
      ./client/jbossmq-client.jar
      ./client/jbosssx-client.jar
      ./client/jmx-invoker-adaptor-client.jar
      ./client/jnp-client.jar

      最后发现是jboss-client.jar 里面包含的org.jboss.proxy.ejb.EJBMetaDataImpl 这个类,导入运行成功。

      yeah,留下脚印

      发表于 @ 2008年04月21日 18:25:00|评论(loading...)|编辑

      新一篇: InitialContext的问题 | 旧一篇: 启动Netbean 6.0

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © lorb