Почему мне отказывают в разрешении JDBC и Netbeans? - PullRequest
0 голосов
/ 16 марта 2012

Мы три разработчика, все работающие с 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 ]

1 голос
/ 19 марта 2012

Мне удалось найти решение. Видимо, мне пришлось открыть порт 449 на моем брандмауэре. Я смотрел там раньше, но поскольку это корпоративная машина, я не понял, что есть ДРУГОЙ настроенный межсетевой экран (F-Secure), который его блокировал.

1 голос
/ 17 марта 2012

Сообщение Permission denied: connect в журнале заставляет меня думать, что это проблема политики Java. Скорее всего, у другого разработчика настроена более разрешительная политика Java.

См. http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html

0 голосов
/ 17 марта 2012

Вы оба используете одного и того же пользователя (username = "theusername") для подключения? Возможно, в IBM i (он же AS / 400) связалась с политикой, которая запрещает множественные соединения

0 голосов
/ 17 марта 2012

Я не уверен насчет DB2, но в некоторых базах данных, таких как MySQL, вы можете ограничить, какие IP-адреса (клиенты) могут подключаться к базе данных. Вы уверены, что это не такая проблема? Возможно, это политика безопасности, установленная в самой базе данных, которая позволяет подключаться только некоторым IP-адресам (в том числе вашему партнеру).

...