import java.rmi.Remote;
public interface Foo extends Remote {
public String exec(String test) throws Exception;
}
import java.rmi.server.UnicastRemoteObject;
public class FooImpl extends UnicastRemoteObject implements Foo {
public FooImpl() throws Exception {
java.rmi.registry.LocateRegistry.createRegistry(1099);
java.rmi.Naming.rebind("myFoo",this);
}
public String exec(String test) {
return "This is a Test";
}
public static void main(String[] args) {
try {
FooImpl fooImpl = new FooImpl();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
@ManagedBean
@RequestScoped
public class IndexBean {
public void execute() {
try {
Foo foo = (Foo) java.rmi.Naming.lookup("//localhost/myFoo");
System.out.println(foo.exec());
} catch (NotBoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
unmarshalException:解组返回错误;嵌套异常为:java.lang.ClassNotFoundException:Foo(无安全管理器:禁用RMI类加载器),地址为sun.RMI.registry.registryimpl_stub.lookup(未知源),地址为java.RMI.naming.lookup(naming.java:101),地址为bean.indexbean.execute(indexbean.java:15),地址为sun.reflect.nativeMethodAccessorImpl.invoke(Native Method),地址为Method.java:606)在org.apache.el.parser.astvalue.invoke(astvalue.java:245)在org.apache.el.methodExpressionImpl.invoke(methodExpressionImpl.java:277)在org.apache.myfaces.view.facelets.el.contextawareTagMethodExpression.invoke(contextawareTagMethodExpression.invoke(位于javax.faces.component.component.uicommand.broadcast(uicommand.java:409)的omponentbase.broadcast(uicommand.java:103)的javax.faces.component.uiviewroot._broadcastall(uiviewroot.java:1013)的javax.faces.component.component.uiviewroot.broadcastEvents(uiviewroot.java:284)的javax.faces.component.uiviewroot._processing在org.apache.myfaces.lifecycle.lifecycleimpl.executePhase(Lifecycleimpl.java:170)在org.apache.myfaces.lifecycleimpl.execute(Lifecycleimpl.java:117)在javax.faces.webapp.facesservlet.service(facesservlet.java:197)在org.apache.catalina.core.applicationFilterChain.InternaldoFilter(applicationFilterChain.java:291)在cat.websocket.server.wsfilter.doFilter(wsfilter.java:52)atinternaldoFilter(applicationFilterChain.java:239)在org.apache.catalina.core.applicationFilterChain.doFilter(applicationFilterChain.java:206)在org.apache.catalina.core.standardWrapperValve.invoke(standardWrapperValve.invoke(standardWrapperValve.java:219)在org.apache.catalina.core.standardContextValve.invoke(standardContextValve.invoke在org.apache.catalina.valves.errorReportValve.invoke(errorReportValve.java:79)在org.apache.catalina.valves.abstractAccessLogValve.invoke(abstractAccessLogValve.java:610)在org.apache.catalina.core.standardEnginEvalve.invoke(StandardEnginEvalve.java:88)在ache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)在org.apache.coyote.http11.http11NioProtocol$http11ConnectionHandler.process(http11NioProtocol.java:222)在org.apache.tomcat.util.net.nioEndpoint$socketProcessor.dorun(NioEndpoint.java:1566)在org.apache.tomcat.util.net.nioEndpoint$socketProcessor.run$worker.run(threadpoolexecutor.java:615)在org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61)在java.lang.thread.run(thread.java:744)由:java.lang.thread.run(thread.java:744)引起:java.lang.thread.run(taskthread.java:61)在sun.RMI.server.loaderhandler.loader.loader:553)在XyClass(rmiclAssLoader.java:311)位于sun.RMI.server.MarshalInputStream.resolv在java.io.objectinputstream.readProxyDesc(objectinputstream.java:1558)在java.io.objectinputstream.readClassDesc(objectinputstream.java:1514)在java.io.objectinputstream.readOrdinaryObject(objectinputstream.java:1771)在java.io.objectinputstream.readObjectinputstream.readObject0(objectinputstream.java:
另外,我更改了Tomcat使用的端口,以避免与RMI端口发生冲突。
客户机的类路径上没有远程接口,也可能没有存根。若要避免使用存根,请添加
super(0);
作为构造函数的第一行。
NB必须将createRegistry()
的结果存储在静态变量中,以防止注册表退出。
问题内容: 不仅仅是一个问题,我需要使用jsf执行身份验证。我开发了一个登录名,该登录名接收存储在MySQL中的用户名和密码。从Active Directory登录后,它应该使用AD的用户名和密码,我想应该与MySQL的用户名和密码相同。 然后,要进入系统,您将不再看到登录名,而是直接看到主页或主页。 希望您的帮助和预先感谢。 问候。 问题答案: 这是我的解决方案,对我有用:编辑faces-con
问题内容: 我在JSF托管bean中使用了Hibernate Validation批注。当我使用时,或者它们似乎没有以任何方式被触发。 视图: 这是怎么引起的,我该如何解决? 问题答案: 介绍 由于您未对使用的是哪个容器的问题发表评论,因此我在您的问题历史记录中进行了了解,以了解所有使用的容器。到目前为止,我只找到了Tomcat。因此,对于这个答案,我将假设您确实使用了我最初在发布评论时所猜测的T
我正在创建一个新的JSF2.0项目,并获得:
问题内容: 我想在我的JSF Web项目上实现Ajax。我搜索了一下,发现ICEFaces正在通过JSF支持Ajax。但是我不知道它的可用性。 任何人都有Ajax / JSF的经验,请指导我搬到哪里。 [编辑] 如果有人有类似经验,请也分享可用性。好与坏.. 问题答案: JSF 2.0使用f:ajax标记内置了对Ajax的支持。ICEFaces,OpenFaces和RichFaces的所有三个都还
问题内容: 我正在用Apache My Faces编写JSF 1.2应用程序。我不能使用任何自定义的组件库- 例如tomahawk或a4j等。有没有一种方法可以使用Ajax调用JSF的操作方法?完成JSF动作后,我想通过Javascript处理JSF动作的响应,并在客户端填充DIV标记?可能吗?谢谢。 问题答案: JSF 1.2不提供任何内置的ajax功能。您基本上有2个选择: Homegrow一
这快把我逼疯了。欢迎提出任何建议。