使用了2个方法
1 使用配置
<bean id="remoteHelloJndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop> <prop key="java.naming.provider.url">jnp://localhost:1099</prop> <prop key="java.naming.factory.url.pkgs">org.jnp.interfaces:org.jboss.naming</prop> </props> </property> </bean> <bean id="remoteHello" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate" ref="remoteHelloJndiTemplate" /> <property name="jndiName" value="TestServiceBean/remote" /> </bean>
调用代码
System.out.println("call hello begin");
try
{
{
TestService svc = (TestService) SpringContextHolder.getBean("remoteHello");
if ( svc != null )
{
System.out.println("getBean Ok!");
System.out.println(svc.hello("abc"));
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("call hello end");
方法2
调用代码
try {
Hashtable<String,String> map = new Hashtable<String,String>();
map.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
map.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
map.put("java.naming.provider.url","jnp://localhost:1099");
ctx =
new javax.naming.InitialContext(map);
TestService svc = (TestService)ctx.lookup( name );
if ( svc != null )
{
System.out.println(svc.hello("TestServiceBean/remote"));
}
} catch (NamingException e) {
e.printStackTrace();
}
==
==
==
两种远程服务调用方式
本文介绍了两种远程服务调用的方法:一是通过Spring框架配置文件实现远程服务的查找与调用;二是直接使用JNDI API进行服务定位及调用。这两种方法均可用于Java环境中远程服务的交互。

被折叠的 条评论
为什么被折叠?



