eclipse+JBoss 5+EJB3开发指南(1):编写第一个无状态的SessionBean2011-09-18 blogjava 哈佛校训本系列教程使用的软件版本如下:Eclipse:3.4.2, Eclipse IDE for Java EE DevelopersJBoss :5.0.1,http://www.jboss.org/jbossas/downloads/JDK:1.6.0.14,http://java.sun.com/javase/downloads/index.jsp在本文中将编写一个简单的无状态SessionBean。在发布EJB时,一般需要将EJB程序以jar文件的形式 进行发布。这些jar文件将被放在<JBoss安装目录>serverdefaultdeploy目录中。如果在 Eclipse中开发EJB程序,需要进行一些配置。首选需要在首选项(Preferences)对话框中设置JBoss的安 装目录(如D:jboss5)。然后在运行配置对话框中添加jboss的运行项。在jboss4.2及以后的版本中,默 认情况下jboss只接收来自localhost或127.0.0.1的请求,也就是只接收本地的访问。为了使jboss接收来 自其他地址的请求,在启动jboss时需要使用-b命令行参数进行设置。如下面的启动命令所示:
run.bat -b 200.200.200.123
run.bat -b 0.0.0.0
上面的第一行命令表示jboss可以接收来自200.200.200.123的请求。第二条命令表示jboss可以接收来 自任意地址的请求。如果不设置-b参数,以非本机方式访问EJB时,JBoss会抛出如下异常:
Exception in thread "main" javax.naming.CommunicationException: Could not obtain connection to any of these urls: 192.168.17.105:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server /192.168.17.105:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server /192.168.17.105:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]]
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1725)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:689)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:682)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at test.Client.main(Client.java:29)
... ...