錯(cuò)誤:
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)
處理:
在本文中將編寫一個(gè)簡單的無狀態(tài)SessionBean。在發(fā)布EJB時(shí),一般需要將EJB程序以jar文件的形式進(jìn)行發(fā)布。這些jar文件將被放在<JBoss安裝目錄>\server\default\deploy目錄中。如果在Eclipse中開發(fā)EJB程序,需要進(jìn)行一些配置。首選需要在首選項(xiàng)(Preferences)對(duì)話框中設(shè)置JBoss的安裝目錄(如D:\jboss5)。然后在運(yùn)行配置對(duì)話框中添加jboss的運(yùn)行項(xiàng)。在jboss4.2及以后的版本中,默認(rèn)情況下jboss只接收來自localhost或127.0.0.1的請(qǐng)求,也就是只接收本地的訪問。為了使jboss接收來自其他地址的請(qǐng)求,在啟動(dòng)jboss時(shí)需要使用-b命令行參數(shù)進(jìn)行設(shè)置。如下面的啟動(dòng)命令所示:
run.bat -b 200.200.200.123
run.bat -b 0.0.0.0
上面的第一行命令表示jboss可以接收來自200.200.200.123的請(qǐng)求。第二條命令表示jboss可以接收來自任意地址的請(qǐng)求。如果不設(shè)置-b參數(shù),以非本機(jī)方式訪問EJB時(shí),JBoss會(huì)拋出如上異常: