java - MySql 不适用于已部署的 Java Web 应用程序

标签 java mysql struts glassfish

我用struts做了一个页面。在本地主机(glassfish)上运行时,它工作正常。 但是,当我将 WAR 文件复制到远程服务器并从那里运行应用程序时,登录表单不起作用。这意味着在连接 mysql 数据库时出现问题。

我该如何解决这个问题?

代码片段:

Connection conn = null;
    Statement stmt = null;
    try{
        InitialContext ctx = new InitialContext();
        DataSource ds = (DataSource)ctx.lookup("jdbc/SB");


        conn = ds.getConnection();
        stmt = conn.createStatement();
        ResultSet rs = null;
        if(stmt.execute("SELECT * FROM users WHERE username='"+loginform.getUsername()+"' AND geslo=MD5('"+loginform.getPassword()+"') LIMIT 1;"))
        {
    rs = stmt.getResultSet();
        }

        rs.next();

不幸的是,我无法从服务器控制台读取。我还应该做什么才能看到异常(远程日志记录?)?

感谢回复。

更新: - 本地和远程 GlassFish 3.0.1 都在运行。 - 我的工作环境是NetBeans 6.9.1。 - 本地部署只需在 NetBeans 中完成。我只是点击项目名称,然后点击发布。对于远程部署,管理员允许我访问 FTP 服务器,我只在其中复制 WAR 文件。 - MySQL 服务器位于其他地方。关键是,它可以从本地主机 Web 应用程序访问,但不能从同一个远程 Web 应用程序访问。

最佳答案

假设您在远程服务器上拥有管理员权限,您需要

  1. 验证数据源“jdbc/SB”是否存在。 (资源/JDBC/JDBC 资源)
  2. 验证数据源中的“池名”是否存在(资源/JDBC/连接池)
  3. 打开相应的连接池并单击“ping”按钮。
  4. 如果 ping 失败,请验证“其他属性”选项卡下的连接参数。

可能还有许多其他问题。您确实需要访问服务器日志,以便查看具体异常是什么。这不太可能是您的代码,更有可能是远程服务器缺少驱动程序依赖项或未正确配置(连接池数据源)

关于java - MySql 不适用于已部署的 Java Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4413552/

相关文章:

java - 在 Struts 2 中使用 ModelDriven

java - 如何知道工作簿中的工作表数?

php - 如何通过一对多优雅地检索数据库数据?

php - 动态表单——设置数据库的正确方法?

java - Struts 只支持 HttpProtocol 吗?

java - 当我们对struts中的form bean进行更改时,为什么需要重新启动tomcat?

java - Sftp 文件上传失败

java - Lucene 4.1 中的 Lucene 3.6 中的 Document.setBoost() 等效于什么?

java - SharedPreferences 在检索值时返回 null

java - 在 Java 中连接到 MySQL 数据库