`
elfmtian
  • 浏览: 55597 次
  • 性别: Icon_minigender_1
  • 来自: 宁夏银川
社区版块
存档分类
最新评论

Jboss6.0.0 M4 发布EJB3项目,应该注意的地方

    博客分类:
  • EJB3
阅读更多
  
       第一:persistence.xml 配置

             必须加入<class>entity bean ...</cass>,在properties前面配置。
     
             如果不加入jboss6.0.0M4 会报错javax.ejb.EJBException  Caused by:

             java.lang.IllegalArgumentException。(在jboss-5.1.0.GA不会出现这个问

             题,只需要注释@entity就好了)

            

       第二:删除客户端加载的ejb3的jar包

             jboss6.0.0M4 应该放在一个容器中,进行自动查询,只需要EJB3发布后的jar
            
             包就够了。(在jboss-5.1.0.GA不会出现这个问题,但是必须加载这个jar包

             并且要删除包中的persistence.xml ,不然会引起找补到类,以及jndi的绑定

             冲突。)


       第三:EJB3+hibernate3的话,要注意jar包的加载

             jboss6.0.0M4加入了hibernate3


      其他的问题,在使用中碰到,将一一罗列。
 


     
1
0
分享到:
评论
3 楼 ltian 2010-09-29  
支持本地接口的的SessionBean无法按照你所说的方式进行单元测试。
以下是我的测试方法:
public static void main(String[] args) throws NamingException
{
  ConverterClient client = new ConverterClient(args);
  Properties prop = new Properties();

      // 设置相关的属性值

      prop.setProperty(Context.PROVIDER_URL, "127.0.0.1:1099");
     
      prop.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
      //Jboss6下的变化?
     // prop.put(Context.URL_PKG_PREFIXES, "org.jboss.naming.client");
      InitialContext ctx = new InitialContext(prop);

      // 开始调用Greeter接口的方法

      converter= (Converter) ctx.lookup("ConverterBean/local");
  client.doConversion();
}

抛出错误如下:
Exception in thread "main" javax.naming.NamingException: Could not dereference object [Root exception is java.lang.RuntimeException: Could not find proxyfactory at ProxyFactory/ejblearn1/ConverterBean/ConverterBean/local -looking up local Proxy from Remote JVM?]
at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1508)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:824)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.ejb.test.ConverterClient.main(ConverterClient.java:39)

因为我们的测试程序在一个JVM中,而Session Bean在另外一个Jvm中,故此,支持本地接口无法的SessionBean无法再另外的一个JVM中被解析。不知道您如何测试成功的?请告知。
2 楼 ltian 2010-09-16  
楼主,我的QQ号码:595534098(兰天),对Flex,EJB3,规则引擎,CEP(复杂事件处理引擎),LDAP,JMS,ESB等比较有兴趣,不知道可否联系一下?留个联系方式,向你请教JBOSS下玩EJB3的问题!
1 楼 ltian 2010-08-31  
非常感谢,愿意以后和你交流。
我是东软电力的软件架构师,参与了国家电网和南方电网十二五信息的技术架构,希望软件架构方面和您沟通。
对于EJB3,我也是刚学,刚看。EJB3的部署在JBoss6 M4下部署比较方便。但是有一个疑问我一直没有解决,那就是有远程接口EJB比较好做单元测试,我做一个类,然后通过JNDI用远程接口绑定远程Session Bean,直接调用其方法就可以在Java进行单元测试,在控制台中看结果。

但我不知道如何对于有本地接口进行的Session bean进行单元测试,在控制台中看结果,因为,本地访问Session需要程序跑在Application Server中,只能通过JSP代码或者Servlet进行调用测试,这个很不方便,不知道您有何办法?望赐教。
我的QQ号码:595534098。
邮箱:ltian.cn@gmail.com

相关推荐

Global site tag (gtag.js) - Google Analytics