Notice: Undefined index: in /data/phpspider/phplib/misc.function.php on line 226
jsp中的JDBC连接到bluemix中的MySQL会挂起页面_Jsp_Jdbc_Ibm Cloud - Fatal编程技术网

jsp中的JDBC连接到bluemix中的MySQL会挂起页面

jsp中的JDBC连接到bluemix中的MySQL会挂起页面,jsp,jdbc,ibm-cloud,Jsp,Jdbc,Ibm Cloud,html或myblumix.net中的任何普通jsp都可以正常工作,但当将JDBC代码放入jsp时,页面没有响应。 这是我的jSP: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="java.sql.*" %> <% Class.forName("com.m

html或myblumix.net中的任何普通jsp都可以正常工作,但当将JDBC代码放入jsp时,页面没有响应。 这是我的jSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@page  import="java.sql.*" %>
    <%
    Class.forName("com.mysql.jdbc.Driver");
    Connection     con=DriverManager.getConnection("jdbc:mysql://155.247.251:3307/dB-Name","user-name","password");

Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from orgmaster");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Bluemix test</title>
</head>
<body>
<%
while(rs.next())
{
%>
<h1>JSP in blue mix <%= rs.getString(2) %></h1>
<%
}
con.close();
%>

</body>
</html>

Bluemix试验
蓝色混合的JSP

尽管bluemix上的Java liberty运行时支持,但不鼓励在JSP代码上硬编码DB连接参数。 如bluemix教程中所述,强烈建议使用VCAP_服务。 下面是VCAP_服务解析和使用的示例

import com.ibm.nosql.json.api.*; 
  import com.ibm.nosql.json.util.*;

  // Block for parsing VCAP SERVICES
  String VCAP_SERVICES = System.getenv("VCAP_SERVICES");
  BasicDBObject sqldb;
  BasicDBObject credentials;
  String databaseUrl;
  if (VCAP_SERVICES != null) {
        BasicDBObject obj = (BasicDBObject) JSON.parse(VCAP_SERVICES);
        String thekey = null;
        Set<String> keys = obj.keySet();
        for (String eachkey : keys)
               if (eachkey.toUpperCase().contains("SQLDB"))
                              thekey = eachkey;
              }
        }
         BasicDBList list = (BasicDBList) obj.get(thekey);
         sqldb = (BasicDBObject) list.get("0");
         credentials = (BasicDBObject) sqldb.get("credentials");
         databaseUrl = credentials.get("jdbcurl");
   }
   else {
        // we are not executing inside bluemix, use a local DB
        databaseUrl = "jdbc:db2://" + databaseHost + ":" + port + "/" + databaseName;       
   }
import com.ibm.nosql.json.api.*;
导入com.ibm.nosql.json.util.*;
//用于解析VCAP服务的块
字符串VCAP_SERVICES=System.getenv(“VCAP_SERVICES”);
基本对象sqldb;
基本对象凭证;
字符串数据库URL;
if(VCAP_服务!=null){
BasicDBObject obj=(BasicDBObject)JSON.parse(VCAP_服务);
字符串thekey=null;
设置键=对象键集();
for(字符串eachkey:keys)
if(eachkey.toUpperCase()包含(“SQLDB”))
钥匙=每个钥匙;
}
}
BasicDBList=(BasicDBList)obj.get(键);
sqldb=(BasicDBObject)list.get(“0”);
凭证=(BasicDBObject)sqldb.get(“凭证”);
databaseUrl=credentials.get(“jdbcurl”);
}
否则{
//我们不是在bluemix内部执行,而是使用本地数据库
databaseUrl=“jdbc:db2://”+databaseHost+:“+port+”/“+databaseName;
}
您可以在此处找到有关获取VCAP_服务的完整教程 在该段
“解析VCAP_服务”

您可以粘贴日志吗cf logs appname--NEXT的问题是hereConnection con=DriverManager.getConnection(“jdbc:mysql://155.247.251:3307/dB-名称、用户名、密码);它应该是Connection con=DriverManager.getConnection(“jdbc:mysql://192.155.247.251:3307/dB-名称“,”用户名“,”密码“;。我在IPThanks Ram中留下了一个数字,这是由于一个印刷错误(省略了IP地址的一部分)造成的,我不认为这个问题对其他人有任何帮助,所以我投票将其搁置。