下面两种代码为什么都能得到相同的效果呢
InitialContextctx
=
new
InitialContext();
和
Propertiesprops
=
new
Properties();
props.setProperty( " java.naming.factory.initial " , " org.jnp.interfaces.NamingContextFactory " );
props.setProperty( " java.naming.provider.url " , " localhost:1099 " );
props.setProperty( " java.naming.factory.url.pkgs " , " org.jboss.naming " );
InitialContextctx = new InitialContext(props);
props.setProperty( " java.naming.factory.initial " , " org.jnp.interfaces.NamingContextFactory " );
props.setProperty( " java.naming.provider.url " , " localhost:1099 " );
props.setProperty( " java.naming.factory.url.pkgs " , " org.jboss.naming " );
InitialContextctx = new InitialContext(props);
这说明new InitialContext()能从某个地方获取这个信息,首先我发现在工程里面有一个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=localhost:1099
删除该内容,然后以上面的方式运行,还是没问题!
下面准备部署一个简单的EJB试试看:
package
server;
import javax.ejb.Remote;
@Remote
public interface Echo ... {
publicStringechotext();
}
import javax.ejb.Remote;
@Remote
public interface Echo ... {
publicStringechotext();
}
package
server;
import javax.ejb.Stateless;
import server.Echo;
public @Stateless class EchoBean implements Echo ... {
publicStringechotext()...{
return"testingremoteEJB3";
}
}
import javax.ejb.Stateless;
import server.Echo;
public @Stateless class EchoBean implements Echo ... {
publicStringechotext()...{
return"testingremoteEJB3";
}
}
待续