为什么我得到JDBC和Netbeans的许可被拒绝?

时间:2012-03-16 18:44:55

标签: java jdbc database-connection ibm-midrange jt400

我们是三位开发人员,他们都在使用Netbeans和Java。一个开发人员可以很好地访问远程DB2服务器(使用相同的代码)。另外两个(包括我)不能。

这是context.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/app_web">
    <Resource name="jdbc/admin"
              auth="Container"
              type="javax.sql.DataSource"
              maxActive="500"
              initialSize="10"
              maxIdle="50"
              maxWait="10000"
              username="theusername"
              password="xxxxxxxxx"
              driverClassName="com.ibm.as400.access.AS400JDBCDriver"
              removeAbandoned="true"
              removeAbandonedTimeout="60"
              logAbandoned="true"
              url="jdbc:as400://192.168.1.1;prompt=false;naming=system;prompt=false;naming=system;libraries=*libl;date format=iso;time format=iso"
              />

以下是我们获得的例外情况:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))
Caused by: java.sql.SQLException: The application requester cannot establish the connection. (Permission denied: connect)
    at com.ibm.as400.access.JDError.throwSQLException(JDError.java:528)
WARNING: Failed to register in JMX: javax.naming.NamingException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))
WARNING: Unexpected exception resolving reference
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))
Caused by: java.sql.SQLException: The application requester cannot establish the connection. (Permission denied: connect)
    at com.ibm.as400.access.JDError.throwSQLException(JDError.java:528)
WARNING: Failed to register in JMX: javax.naming.NamingException: Cannot create PoolableConnectionFactory (The application requester cannot establish the connection. (Permission denied: connect))

我已将jt400.jar文件放在C:\Program Files\Apache Software Foundation\apache-tomcat-6.0.35\lib文件夹中,将其放在...\web\WEB-INF\lib文件夹中,等等。似乎没什么用。

4 个答案:

答案 0 :(得分:1)

日志中的消息Permission denied: connect让我觉得这是一个Java策略问题。其他开发人员很可能配置了更宽松的Java策略。

请参阅http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html

答案 1 :(得分:1)

我能够找到解决方案。显然,我必须在防火墙上打开端口449。我之前看过那里,但由于这是一台公司机器,我没有注意到有一个阻止它的另一个防火墙配置(F-Secure)。

答案 2 :(得分:0)

我不确定DB2,但在某些数据库(如MySQL)中,您可以限制哪些IP(客户端)可以连接到数据库,您确定这不是问题吗?可能是在数据库本身设置的安全策略,只允许某些IP(包括您的伙伴)连接。

答案 3 :(得分:0)

你们俩是否都使用同一个用户(username =“theusername”)进行连接?也许在IBM i(也称为AS / 400)上与用户关联的政策不允许多个连接