@JFinal 你好,想跟你请教个问题:我尝试使用jfinal+druid+sqlserver的时候,连接mysq没有问题,使用jdbc连接sqlserver也没有问题,但是在 public void configPlugin(Plugins me) {}中配置连接sqlserver就报错了,请帮我看下这个可能的原因。
我按照您在开源中国里面的那个给网友的写的;信息如下请指导下。
DruidPlugin druidPlugin = new DruidPlugin(getProperty("jdbcUrl").trim(), getProperty("user").trim(), getProperty("password").trim());
druidPlugin.setFilters("stat,wall");
druidPlugin.setValidationQuery("select 1 FROM DUAL");
me.add(druidPlugin);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.setDialect(new SqlServerDialect());
arp.setContainerFactory(new CaseInsensitiveContainerFactory());
arp.setShowSql(true);
me.add(arp);
#SQLSERVER------BIREPORT(数据仓库)10.102.36.248
jdbc.bireport.driverClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbcUrl = jdbc:sqlserver://:10.102.36.248:1433;DatabaseName=bireport
user = sf_bi_etl
password = Sf.Bi@Et1
严重: Exception starting filter jfinal
java.lang.RuntimeException: Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin.
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 :10.102.36.248 的 TCP/IP 连接失败。错误:“null。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.jfinal.core.Config.startPlugins(Config.java:96)
at com.jfinal.core.Config.configJFinal(Config.java:48)
at com.jfinal.core.JFinal.init(JFinal.java:65)
at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4854)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5546)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1258)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1918)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: com.jfinal.plugin.activerecord.ActiveRecordException: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 :10.102.36.248 的 TCP/IP 连接失败。错误:“null。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:91)
at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:171)
at com.jfinal.core.Config.startPlugins(Config.java:87)
... 20 more
应该是连不上数据库,例如1433端口被防火墙阻止等原因,异常信息还是比较清楚的:<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">通过端口1433连接到主机:10.102.36.248的TCP/IP连接失败。错误:“null。请验证连接属性,并检查SQLServer的实例正在主机上运行,且在此端口接受TCP/IP连接,还要确保防火墙没有阻止到此端口的TCP连接。”<atarget='_blank'>@JFinal没效果<atarget='_blank'>@JFinalDruidPlugindruidPlugin=newDruidPlugin(getProperty("jdbcUrl").trim(),getProperty("user").trim(),getProperty("password").trim(),getProperty("jdbc.bireport.driverClassName").trim());...回复<aclass='referer'target='_blank'>@azura111:把这一行注掉试试:druidPlugin.setFilters("stat,wall");我本地telnet10.102.36.2481433成功。防火墙全部关闭了。控制面板tcp协议端口全部打开,还是这样的错误,我写一个方法,使用jdbc去连接确可以成功,怎么回事?连接mysql没有问题<spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">druidPlugin.setValidationQuery("select1FROMDUAL");这句话也是不对的sqlserver用select1就好了
我知道了,sqlserver版本2014,newDruidPlugin(getProperty("jdbcUrl.bireport")这句话,这样写不对,这样写就对,DruidPlugin("jdbc:sqlserver://10.102.34.80:1433;DatabaseName=BIREPORT...也就是说将url直接写进去,也就是getProperty()方法在解析有bug,请...我知道了,sqlserver版本2014,newDruidPlugin(getProperty("jdbcUrl.bireport")这句话,这样写不对,这样写就对,DruidPlugin("jdbc:sqlserver://10.102.34.80:1433;DatabaseName=BIREPORT...也就是说将url直接写进去,也就是getProperty()方法在解析有bug,请知悉波波! 回复<aclass='referer'target='_blank'>@12叔:12我在你群里,哈哈。确实mysql没遇到这个问题,sqlserver2014就有了回复<aclass='referer'target='_blank'>@JFinal:建议您可以下载一个sqlserver2014尝试测试下。回复<aclass='referer'target='_blank'>@JFinal:这个我没有看你的封装的包,但是确实是这样了,我这里,就是getProperty("url")这里有问题,其他的好着。不科学啊mysql你咋读取成功了没秒懂!具体在通过getProperty后得到的数据有何不同?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。