文档章节

Jboss+Myeclipse初学者常见问题

zhaoyou
 zhaoyou
发布于 2010/10/19 13:07
字数 506
阅读 981
收藏 1

    使用MyEclipse+JBOSS开发EJB问题:

    1.要在Eclipse中JRE类库中加入%JBOSS_HOME%/client/jbossall-client.jar 否则会抛出异常:

    复制代码

    1. Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    2. at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
    3. at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    4. at javax.naming.InitialContext.init(InitialContext.java:223)
    5. at javax.naming.InitialContext.(InitialContext.java:175)
    6. at org.wind.unit.TestCalculator.main(TestCalculator.java:18)
    7. Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
    8. at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    9. at java.security.AccessController.doPrivileged(Native Method)
    10. at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    11. at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    12. at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    13. at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    14. at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    15. at java.lang.Class.forName0(Native Method)
    16. at java.lang.Class.forName(Class.java:247)
    17. at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
    18. at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
    19. ... 4 more

    2.在MyEclipse创建EJB客户端项目时,需要手动创建jndi.properties也可以在将%JBOSS_HOME%\server\all\conf\jndi.properties复制到项目中,也可以在CODE中使用Properties类或者Hashtable类创建一个jndi,否则找不到JNDI而抛出异常:

    复制代码

    1. Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    2. at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    3. at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    4. at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
    5. at javax.naming.InitialContext.lookup(InitialContext.java:392)
    6. at org.wind.unit.TestCalculator.main(TestCalculator.java:30)

    3.将jndi.properties复制到项目中之后,要在jndi.properties中加入java.naming.provider.url=localhost:1099 (不一定是localhost:1099根据开发需要可能会更改)否则会抛出异常:

    复制代码

    1. Exception in thread "main" javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
    2. at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1465)
    3. at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1594)
    4. at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634)
    5. at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
    6. at javax.naming.InitialContext.lookup(InitialContext.java:392)
    7. at org.wind.unit.TestCalculator.main(TestCalculator.java:30)
    8. Caused by: java.net.SocketTimeoutException: Receive timed out
    9. at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    10. at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)
    11. at java.net.DatagramSocket.receive(DatagramSocket.java:712)
    12. at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1435)
    13. ... 5 more

    使用Propertie类:

    复制代码

    1. Properties props = new Properties();
    2. props.setProperty("java.naming.factory.initial",     "org.jnp.interfaces.NamingContextFactory");
    3. props.setProperty("java.naming.provider.url", "localhost:1099");
    4. InitialContext ict=new InitialContext(props);

    使用Hashtable:

    复制代码

    1. Hashtable prop=new Hashtable();
    2. prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    3. prop.put(Context.PROVIDER_URL, "localhost:1099");
    4. InitialContext ict=new InitialContext(prop);

    4.JNDI命名规则是 EAR包名/Bean名称/remote(local) 若没有EAR包则直接是Bean名称/remote(local)。

    5.当使用local时 要注意测试的时候一定要保证都在一个JVM中。

    6.创建Session Bean时要注意自己使用的是有状态(@Stateful)还是无状态(@Stateless)

    源文档 <http://bbs.uebbs.net/read-htm-tid-62375.html>

阅读全文
类别: jboss+ejb+myeclipse  查看评论

本文转载自:http://hi.baidu.com/zhaoyou%5Fxt/blog/item/aa1785128560c7896538db4a.html

共有 人打赏支持
zhaoyou
粉丝 14
博文 16
码字总数 2043
作品 0
上海
项目经理
私信 提问
加载中

评论(1)

王政财
王政财
人过留名
LaTeX入门系列之七(LaTeX常见问题集)

手上有两个LaTeX的常见问题集,其中一个是中文,一个是英文的,和大家分享一下! 常见问题集ChinaTeXMathFAQ的编者建议,学习LaTeX,最好先认真研读一本书,因为我们学习时遇到的很多问题,在...

ganghao117
2013/07/16
0
1
MLSQL Cluster 路由策略

前言 MLSQL Cluster 具备多MLSQL Engine 实例管理功能,实现负载均衡,多业务切分等等功能。 负载均衡 MLSQL Cluster 有一个和MLSQL Engine完全一致的 /run/script 接口,参数也是保持一致的...

祝威廉
03/20
0
0
代码疑云(6)-头文件的正确定义

代码: 头文件print_tools.h #includevoid printStr(const char *pStr){printf("%sn",pStr);}void printtInt(const int i){printf("%dn",i);} 头文件counter.h #include"print_tools.h"stat......

zhanxinhang
2011/07/08
0
0
怎样在几何画板中查看课件制作过程

几何画板主要以点、线、圆为基本元素,通过对这些基本元素的变换、构造、测算、计算、动画、跟踪轨迹等,构造出其它较为复杂的图形。是数学、物理教学中强有力的工具。对于一个几何画板初学者...

学术研究软件
2016/04/11
55
0
微服务开发架构——Spring Cloud常见问题与总结Spring Cloud 定位问题思路总结

个人GitHub地址:https://github.com/leebingbin/ 在使用Spring Cloud的过程中,难免会遇到一些问题。所以对Spring Cloud的常用问题做一些总结。 五、Spring Cloud 定位问题思路总结 根据市场...

Mr_ET
2017/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EMAS,一部淘宝十年移动互联网技术的演进史

导读 本文根据2018云栖大会深圳峰会·EMAS专场—移动互联的进化论,阿里巴巴高级技术专家泠茗《 EMAS全景介绍》的演讲整理而成,文中就EMAS的起源史及EMAS的五大移动研发场景解决方案进行了分...

迷你芊宝宝
32分钟前
2
0
C# 图片人脸识别

此程序基于 虹软人脸识别进行的开发 前提条件从虹软官网下载获取ArcFace引擎应用开发包,及其对应的激活码(App_id, SDK_key)将获取到的开发包导入到您的应用中 App_id与SDK_key是在初始化...

是哇兴哥棒棒哒
34分钟前
2
0
spring boot web项目连接池配置分析

两篇文档,请读者自行分析: Druid: https://www.cnblogs.com/niejunlei/p/5977895.html HikariCP: http://blog.csdn.net/clementad/article/details/46928621...

sunranhou
36分钟前
1
0
TypeError: Object of type int64 is not JSON serializable

问题 在使用json.dumps(param)将python对象转成json的过程中出现了,如下问题: TypeError: Object of type int64 is not JSON serializable 代码如下: param = { 'remoteId': 'rem......

亚林瓜子
38分钟前
1
0
Android MediaPlayer

1.通过静态方法构造 MediaPlayer.create(Context context,int resid); 2.构造方法: MediaPlayer(); 设置媒体源: setDataSource(String path); 3.设置是否循环: setLooping(boolean) 4.播放......

Coding缘
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部