ejb入门,向大神求救
ejb代码package com.sxt;public interface FirstEJB {
public String say(String str) ;
}package com.sxt;import javax.ejb.Remote;
import javax.ejb.Stateless;@Stateless
@Remote
public class FirstBean implements FirstEJB { public String say(String str) {
// TODO Auto-generated method stub
return "Hellow"+ str;
}}客户端
package com.bjsxt;import java.util.Hashtable;
import java.util.Properties;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.sxt.FirstEJB;public class FirstClient {
public static void main(String[] args) throws Exception {
try {
InitialContext context = new InitialContext();
FirstEJB ejb=(FirstEJB)context.lookup("FirstBean/Remote");
String s = ejb.say("world");
System.out.println(s);
} catch (NamingException e) { e.printStackTrace();
}
/* Properties props=new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","localhost:4447");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
try
{
InitialContext context=new InitialContext(props);
FirstEJB hello=(FirstEJB)context.lookup("FirstBean/remote");
System.out.println(hello.say("Hello Kitty"));
}
catch(NamingException e)
{
e.printStackTrace();
System.out.println(e.getMessage());
}*/
/* Hashtable<String, String> jndiProperties = new Hashtable<String, String>();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
try {
Context context = new InitialContext(jndiProperties);
final String moduleName = "FirstBean";
Object obj = context.lookup("FirstBean/Remote");
FirstEJB hwr =
(FirstEJB)obj;
String say = hwr.say("XiXia");
System.out.println(say);
} catch (NamingException e) {
e.printStackTrace();
}*/
}
}
使用jndi.properties时java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhostexception:java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost使用jboss-ejb-client.properties时remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=falseexception: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
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.bjsxt.FirstClient.main(FirstClient.java:15)
配置写代码中也会报其中一个
ejb代码package com.sxt;public interface FirstEJB {
public String say(String str) ;
}package com.sxt;import javax.ejb.Remote;
import javax.ejb.Stateless;@Stateless
@Remote
public class FirstBean implements FirstEJB { public String say(String str) {
// TODO Auto-generated method stub
return "Hellow"+ str;
}}客户端
package com.bjsxt;import java.util.Hashtable;
import java.util.Properties;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.sxt.FirstEJB;public class FirstClient {
public static void main(String[] args) throws Exception {
try {
InitialContext context = new InitialContext();
FirstEJB ejb=(FirstEJB)context.lookup("FirstBean/Remote");
String s = ejb.say("world");
System.out.println(s);
} catch (NamingException e) { e.printStackTrace();
}
/* Properties props=new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","localhost:4447");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
try
{
InitialContext context=new InitialContext(props);
FirstEJB hello=(FirstEJB)context.lookup("FirstBean/remote");
System.out.println(hello.say("Hello Kitty"));
}
catch(NamingException e)
{
e.printStackTrace();
System.out.println(e.getMessage());
}*/
/* Hashtable<String, String> jndiProperties = new Hashtable<String, String>();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
try {
Context context = new InitialContext(jndiProperties);
final String moduleName = "FirstBean";
Object obj = context.lookup("FirstBean/Remote");
FirstEJB hwr =
(FirstEJB)obj;
String say = hwr.say("XiXia");
System.out.println(say);
} catch (NamingException e) {
e.printStackTrace();
}*/
}
}
使用jndi.properties时java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhostexception:java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost使用jboss-ejb-client.properties时remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=falseexception: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
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.bjsxt.FirstClient.main(FirstClient.java:15)
配置写代码中也会报其中一个
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货