Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取错误java.sql.SQLException:协议冲突_Java_Oracle_Jdbc - Fatal编程技术网

获取错误java.sql.SQLException:协议冲突

获取错误java.sql.SQLException:协议冲突,java,oracle,jdbc,Java,Oracle,Jdbc,从最近几天开始,我一直在挠头,因为下面提到了一个例外。 首先,我要求你不要把它标记为重复的,因为我已经看过了 数以百计的问答,只有在少数情况下提供的答案没有在我的情况下工作 目前我面临协议冲突异常 堆栈跟踪: java.sql.SQLException:在 oracle.jdbc.dbaccess.DBError.check_errorDBError.java:418在 java:136 at http://www.oracle.jdbc.ttc7.TTC7Protocol.closeQuery

从最近几天开始,我一直在挠头,因为下面提到了一个例外。 首先,我要求你不要把它标记为重复的,因为我已经看过了 数以百计的问答,只有在少数情况下提供的答案没有在我的情况下工作

目前我面临协议冲突异常

堆栈跟踪:

java.sql.SQLException:在 oracle.jdbc.dbaccess.DBError.check_errorDBError.java:418在 java:136 at http://www.oracle.jdbc.ttc7.TTC7Protocol.closeQueryTTC7Protocol.java:406at oracle.jdbc.driver.OracleResultSet.internal\u closeOracleResultSet.java:145 java:81 at http://www.org.apache.jsp.ditLogin\u 005f2\u jsp.\u jspServiceditLogin\u 005f2\u jsp.java:171 位于org.apache.jasper.runtime.HttpJspBase.serviceHttpJspBase.java:70 在javax.servlet.http.HttpServlet.serviceHttpServlet.java:717 at org.apache.jasper.servlet.JspServletWrapper.serviceJspServletWrapper.java:377 在 org.apache.jasper.servlet.JspServlet.serviceJspFileJspServlet.java:313 位于org.apache.jasper.servlet.JspServlet.serviceJspServlet.java:260 在javax.servlet.http.HttpServlet.serviceHttpServlet.java:717 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:290

它只出现在一个环境/服务器中,而在其他环境/服务器中工作正常 尽管两台服务器的配置相同

配置:

数据库:Oracle 11G

JVM:64位

驱动程序OJDBC:ojdbc6.jar

JDK:1.6

在一些网站上,我发现密码过期日期可能是原因。但是在 两台服务器都是空的,我想这意味着无限的。 那么,还有其他配置需要我研究吗? 请帮帮我。提前感谢。

您选中的dba_users.expiration_date列与create/alter user命令的子句相关

您在别处看到的ORA-28002错误是协议违反的一个可能原因,具体而言,与

您在此环境中连接到的用户似乎有一个通过配置文件强制密码过期的配置文件,并且您当前处于宽限期。您可以在dba_users.profile列中查看分配的配置文件,然后在dba_profiles视图中查看限制

您可以手动登录,将显示警告;JDBC不理解它,因此您将看到异常并对其进行更改,然后更新您的JDBC配置以匹配它


或者让DBA将用户更改为其他配置文件,或者修改他们现在使用的配置文件,使其不会过期。您可能希望这样做,而不是改变所有的密码;但是,更改密码以解决即时问题可能会更快。

密码到期时间为空,您正在查看用户所属的配置文件吗?您是否可以使用通过JDBC使用的凭据手动登录到目标数据库?我在DB中看到了密码过期警告,但其他响应可能会导致它,甚至可能是登录触发器。通过另一个客户端(最好是SQL*Plus)手动连接可能会给您一个提示。我已经为我在应用程序中使用的用户签入了dba_users表。但我没有与该用户手动登录。我会查一查。谢谢,这是一个默认配置文件和限制列,在dba_profiles表中包含UNLIMITED。您是否可以编辑该问题,说明通过SQL*Plus手动登录时发生了什么?