部署在bluemix中的Java web应用程序

部署在bluemix中的Java web应用程序,java,jdbc,db2,ibm-cloud,Java,Jdbc,Db2,Ibm Cloud,我在bluemix中部署了一个java web应用程序,它使用db2 jdbc,我收到一个sqlnontransient异常,表明我的主机未知,这是ibm内部的,但它在我的本地环境中运行良好 com.ibm.db2.jcc.am.SqlNonTransientConnectionException:[jcc][t4][10380][11951][4.13.127]所需属性“”是未知主机。ERRORCODE=-4222,SQLSTATE=08001IBM Bluemix位于公共互联网上。如果您的数

我在bluemix中部署了一个java web应用程序,它使用db2 jdbc,我收到一个sqlnontransient异常,表明我的主机未知,这是ibm内部的,但它在我的本地环境中运行良好


com.ibm.db2.jcc.am.SqlNonTransientConnectionException:[jcc][t4][10380][11951][4.13.127]所需属性“”是未知主机。ERRORCODE=-4222,SQLSTATE=08001

IBM Bluemix位于公共互联网上。如果您的数据库位于IBM内部网络上,由于防火墙限制,您将无法访问它。如果您的本地环境也在内部IBM网络中,这就是为什么它在那里工作,而不是在Bluemix中工作。您将需要使用API网关来访问数据,这将要求您在数据源前面编写REST API并向网关注册

如果数据不是机密的,更好的方法可能是在Bluemix中请求一个DB2云实例并将数据放在那里。如果您的数据无法放置在公共Bluemix中,IBM在内部网络上有一个Bluemix专用实例。您可能应该在那里部署应用程序


~jr

请分享您正在使用的代码,以及出现此错误的原因;)公共静态布尔检查连接(字符串用户,字符串密码){String className=“COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver”;尝试{Class.forName(className);System.out.println(“驱动程序加载和注册(驱动程序管理器)”;}catch(ClassNotFoundException e){e.printStackTrace();}字符串url=“jdbc:db2://IBMNLYC02.NL.IBM.COM:50000/pbs3db”;连接conn=null;尝试{conn=DriverManager.getConnection(url、用户、密码);System.out.println(“连接已建立…”);返回true;}我使用了上述代码,而getConnection方法抛出错误