JBOSS EAP 6.2 下一个简单的HelloWorld的EJB异常,几天了无法解决,求高人出现相助
EJB代码:
public interface HelloBussiness {
String hello();
}
@Stateless
@Remote(HelloBussiness.class)
public class HelloBussinessImpl implements HelloBussiness{
public String hello() {
return "So Damned hard, Hello World, EJB3.0";
}
}
客户端代码:
Hashtable pro = new Hashtable();
pro.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
pro.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
pro.put(Context.PROVIDER_URL, "localhost:4447");
try {
Context ctx = new InitialContext( pro );
String lookupStr = "ejb:/HelloWorld//HelloBussinessImpl!rmt.HelloBussiness" ;
Object rmtHomeObj = ctx.lookup(lookupStr);
if( rmtHomeObj != null ) {
HelloBussiness remoteObj = ( HelloBussiness )javax.rmi.PortableRemoteObject.narrow(rmtHomeObj, HelloBussiness.class);
remoteObj.hello();
}
}catch( Exception ex ) {
ex.printStackTrace();
}
EJB成功部署,部署信息如下:
java:global/HelloWorld/HelloBussinessImpl!rmt.HelloBussiness
java:app/HelloWorld/HelloBussinessImpl!rmt.HelloBussiness
java:module/HelloBussinessImpl!rmt.HelloBussiness
java:jboss/exported/HelloWorld/HelloBussinessImpl!rmt.HelloBussiness
java:global/HelloWorld/HelloBussinessImpl
java:app/HelloWorld/HelloBussinessImpl
java:module/HelloBussinessImpl
运行后报异常:
javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:4447 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 retrieve stub from server localhost:4447 [Root exception is java.io.StreamCorruptedException: invalid stream header: 0000000C]]
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1416)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:596)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:589)
at javax.naming.InitialContext.lookup(Unknown Source)
at client.Client.main(Client.java:29)
Caused by: javax.naming.CommunicationException: Failed to retrieve stub from server localhost:4447 [Root exception is java.io.StreamCorruptedException: invalid stream header: 0000000C]
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:263)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1387)
... 4 more
Caused by: java.io.StreamCorruptedException: invalid stream header: 0000000C
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:250)
... 5 more
好郁闷啊,求助啊