gpt4 book ai didi

java - JSF 与 RMI 教程

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:34 30 4
gpt4 key购买 nike

我必须用 JSF 应用程序实现 RMI,但我还没有找到任何关于如何集成这两种技术的教程。我对 Java 的经验很少,只有一个简单的应用程序是用 JSF 开发的,所以我还是个初学者。

如果您知道任何可能有用的链接,请分享,如果您可以解释我必须了解的要点,以便正确构建/配置我的项目,请提供提示。

提前谢谢你。

更新:

这是项目的要求:

“考虑一个名为“求职服务”的分布式 Web 应用程序。该应用程序应记录过去一年中的所有工作机会,并说明该工作是否已被接受。用户应该能够发布工作机会并按日期或类别搜索工作机会。

在使用分布式对象技术实现该系统时,请考虑以下限制:

  1. 远程对象应该公开“职位发布”系统功能,让用户向系统添加职位。
  2. 远程对象应公开“搜索职位”功能,允许用户按日期或类别搜索职位。
  3. 所有工作机会都必须包含职位名称、公司名称、截止日期、详细联系信息和工作规范。

你的任务:

使用 Java 或 .NET 特定技术设计、实现和测试分布式应用程序。 (RMI 或 .NET Remoting 技术是强制性的)”

最佳答案

这样做并不神秘。请记住,JSF 托管 bean 只是 Java 类,所以这里唯一要做的就是您的应用程序设计。为此,您可以拥有一个(非常)基本的骨架,如下所示:

在 JSF 项目中:

@ManagedBean
@RequestScoped
public class LoginBean {

private String user;
private String password;

public LoginBean() {
}

//getters and setters...

public String validateUser() {
UserService userService = new UserService();
if (userService.validateUser(user, password)) {
return "success";
}
return "problems";
}
}

public class UserService extends {

public UserService() {
}

public boolean validateUser(String user, String password) {
//do the Java RMI client job here...
boolean result = false;
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}
try {
String name = "UserServiceRMI";
Registry registry = LocateRegistry.getRegistry(args[0]);
UserServiceRMI userServiceRMI = (UserServiceRMI) registry.lookup(name);
result = userServiceRMI.validateUser(user, password);
} catch (Exception e) {
//you can (and must) do a better error handling
System.out.println("UserService exception:");
e.printStackTrace();
}
return result;
}
}

在 RMI 服务器项目中:

public interface UserRMIService extends java.rmi.Remote {
boolean validateUser(String user, String password) throws java.rmi.RemoteException;
}

public class UserService implements UserRMIService {

public UserService() {
super();
}

public boolean validateUser(String user, String password) {
//do the user validation here...
//check against the database or another way you want/need
}

public static void main(String[] args) {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}
try {
String name = "UserRMIService";
UserRMIService engine = new UserService();
UserRMIService stub =
(UserRMIService) UnicastRemoteObject.exportObject(engine, 0);
Registry registry = LocateRegistry.getRegistry();
registry.rebind(name, stub);
System.out.println("UserService bound");
} catch (Exception e) {
//you can (and must) do a better error handling
System.out.println("UserService exception:");
e.printStackTrace();
}
}
}

关于java - JSF 与 RMI 教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13778113/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com