用这个PortableRemoteObject.narrow(Object narrowFrom, Class narrowTo) 方法。
解决方案 »
- struts2总是报404
- jsp假分页,求指教!
- 跪求:java虚拟机的垃圾回收原理
- 用struts读取hibernate中多表查询结果
- 【50分求助】swing图形设计
- 就业问题
- 急问一个TOMCAT绑定IP的例子!!!!!!!!!!
- 急:关于JMS-Implemented WebLogic Web Services的问题
- 求教WEBLOGIC6.1连SQLSERVER2000的配置,和在哪里有下载WEBLOGIC-SQLSERVER2000的驱动
- Spring Boot pom.xml依赖包爆红 无法下载 求解决!!!
- 请问,我想输入http://127.0.0.1:8080/出现我的jsp页面,在Tomcat中怎么配置
- 编译sessionbean时出错?
public interface SampleInterface extends java.rmi.Remote{
public String sayHello()throws java.rmi.RemoteException;
}
实现远程接口:
import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
public class Sample extends UnicastRemoteObject implements SampleInterface{
...
public static void main(String[] args){
...
Sample obj=new Sample();
Naming.rebind("/Sample",obj);
...
}
}使用远程对象的程序:
Properties props = System.getProperties(); //from ??
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER_URL, "192.168.0.11");——192.168.0.11就是JNDI服务器的IP。
方法一在InitialContext构造函数中传入一个hashtable,代码为:
Hashtable env= new Hashtable ();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://localhost:7001");
Context ctx=new InitialContext(env);
方法二在启动Java应用程序的时候通过系统属性提供JNDI环境属性值,比如使用如下命令来设置JNDI环境属性:java -Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory -Djava.naming.provider.url=t3://localhost:7001
方法三使用资源文件使得设置于应用程序完全分离,便于维护。服务提供者和JNDI类库可以自动定位并使用这些资源文件,因此这种方法最灵活。我们可以编辑一个jndi.properties文件,内容为(对于weblogic):
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory java.naming.provider.url=t3://localhost:7001
然后保证其路径包含在环境变量中(比如放在编译后的classes文件夹下)以保证能够被正确定位。这样不用再在构造函数中提供环境属性就可以创建InitialContext对象,例如Context ctx=new InitialContext()。但是对于一些比较敏感的信息比如用户名密码等,则不易包含在这种资源文件中。这种自己编写的资源文件称为应用程序资源文件,另外还有一种资源文件由JNDI服务提供者提供,成为提供者资源文件,在这种资源文件中放置本身服务的特定属性,对于这类资源文件中设置的某个java.naming.factory属性将覆盖其他已经设置的对应的属性。客户机在连接某个JNDI命名服务时,首先如果所有环境属性都使用InitialContext构造函数传递,这些属性就用来初始化语境,其次JNDI环境会添加系统属性,最后添加被包含的资源文件中的环境属性。
javax.rmi.PortableRemoteObject.narrow(object,"class");
这样转换
可是你没有想过啊 等于是给别人开了个后门
会被攻击的很惨!!