我用Jboss 5在EJB 3.0中创建了一个helloworld应用程序。当我尝试运行客户端类EjbClientApplication时,它抛出了一个异常。
我经常出现以下异常。我已经做了很多关于它的rnd,但我找不到它,因为我是EJB新手,请帮助。
例外情况:
javax。命名。CommunicationException:无法获取到的连接
以下URL之一:localhost:1099,发现失败,错误为:
javax。命名。CommunicationException:接收超时[根异常
是java。网SocketTimeoutException:接收超时][根
javax是个例外。命名。通信异常:连接失败
到服务器localhost/127.0.0.1:1099[根异常为
javax。命名。ServiceUnavailableException:无法连接到服务器
localhost/127.0.0.1:1099[根异常为java.net.ConnectException:
连接被拒绝:连接]]]
组织。jnp。接口。NamingContext。checkRef(NamingContext.java:1763)位于
组织。jnp。接口。NamingContext。查找(NamingContext.java:693)
组织。jnp。接口。NamingContext。查找(NamingContext.java:686)
javax。命名。InitialContext。查找(InitialContext.java:392)
通用域名格式。十六进制。客户EJBClient应用程序。main(EjbClientApplication.java:28)
原因:javax。命名。CommunicationException:无法连接到
服务器localhost/127.0.0.1:1099[根异常为
javax。命名。ServiceUnavailableException:无法连接到服务器
localhost/127.0.0.1:1099[根异常为java.net.ConnectException:
连接被拒绝:连接]]位于
组织。jnp。接口。NamingContext。getServer(NamingContext.java:335)位于
组织。jnp。接口。NamingContext。checkRef(NamingContext.java:1734)。。。
4更多原因:javax。命名。ServiceUnavailableException:未能
连接到服务器localhost/127.0.0.1:1099[根异常为
Java语言网连接异常:连接被拒绝:连接]位于
组织。jnp。接口。NamingContext。getServer(NamingContext.java:305)。。。
5更多原因:java。网连接异常:连接被拒绝:
连接java。网PlainSocketImpl。位于的socketConnect(本机方法)
Java语言网PlainSocketImpl。doConnect(PlainSocketImpl.java:351)
Java语言网PlainSocketImpl。连接到地址(PlainSocketImpl.java:213)
Java语言网PlainSocketImpl。连接(PlainSocketImpl.java:200)
Java语言网SocksSocketImpl。连接(SocksSocketImpl.java:366)
Java语言网插座连接(Socket.java:529)
组织。jnp。接口。TimedSocketFactory。createSocket
(TimedSocketFactory.java:97)位于
组织。jnp。接口。TimedSocketFactory。createSocket
(TimedSocketFactory.java:82)位于
组织。jnp。接口。NamingContext。getServer(NamingContext.java:301)。。。
5个以上
Jboss服务器的端口是127.0.0.1:10001,但我试图点击这个url 127.0.0.1:1099,这是ryt吗?
服务器属性:
-
地址:127.0.0.1
-
端口:8080
-
JNDI端口:1099
MyCode:这些代码包含在单个EJB项目中
远程接口类:
package com.hex.statelessbean;
import javax.ejb.Remote;
@Remote
public interface StatelessSessionBeanRemote {
public String displayMessage();
}
无状态bean:
/**
* Session Bean implementation class StatelessSessionBean
*/
package com.hex.statelessbean;
import javax.ejb.Stateless;
@Stateless
public class StatelessSessionBean implements StatelessSessionBeanRemote {
/**
* Default constructor.
*/
public StatelessSessionBean() {
// TODO Auto-generated constructor stub
}
@Override
public String displayMessage() {
// TODO Auto-generated method stub
return "Hello world";
}
}
客户:
package com.hex.client;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.hex.statelessbean.StatelessSessionBeanRemote;
public class EjbClientApplication {
public static void main(String[] args) {
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.factory.url.pkgs",
"org.jboss.naming");
props.setProperty("java.naming.provider.url", "localhost:1099");
InitialContext ctx = new InitialContext(props);
StatelessSessionBeanRemote bean = (StatelessSessionBeanRemote) ctx
.lookup("StatelessSessionBean/remote");
System.out.println("Message from Bean :" + bean.displayMessage());
} catch (NamingException e) {
e.printStackTrace();
}
}
}