在GWT app中通过SSH与DB通信(使用RPC)

时间:2012-05-12 17:00:01

标签: gwt servlets ssh rpc jsch

我正在尝试使用针对java servlet的RPC模型编写GWT后端。 是否可以在RPC中使用ssh隧道以便与远程sql数据库通信?

我尝试执行的代码如下,使用Jsch。 “session.connect();”

发生错误
String host="xxxxx.xxx.edu";

String user="username";
String password="password";

Session session= null;
try{
            //Set StrictHostKeyChecking property to no to avoid UnknownHostKey issue
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            JSch jsch = new JSch();
            session=jsch.getSession(user, host, 22);
            session.setPassword(password);
            session.setConfig(config);
            session.connect();
}

我在'session.connect()'行中遇到的运行时错误如下:(向右滚动以查看整个错误)

com.jcraft.jsch.JSchException: java.security.AccessControlException: access denied (java.net.SocketPermission xxxxx.xxx.edu resolve)
at com.jcraft.jsch.Util.createSocket(Util.java:341)
at com.jcraft.jsch.Session.connect(Session.java:194)
at com.jcraft.jsch.Session.connect(Session.java:162)
at com.front.server.GameServiceImpl.createGame(GameServiceImpl.java:39)

令人沮丧的是,我将完全相同的代码复制/粘贴到一个简单的java程序中,并且它可以工作。所以我知道代码是正确的;很明显,GWT为本地测试创建的jetty服务器在执行代码时存在问题。在GWT的这种情况下,我还能做什么/我应该做些什么? GWT应用程序的后端是否应该具有ssh ??

的能力

1 个答案:

答案 0 :(得分:0)

我建议您尝试使用不同的Web容器(Tomcat,JBoss)运行您的gwt应用程序。您仍然可以通过使用-noserver标志运行托管模式来使用调试功能。 见here