У меня есть Java-приложение Azure java, и я хочу подключить его к базе данных Oracle в некоторых VNET через JDBC.Веб-приложение подключено к VNET через точку VPN на сайте.Создание соединения не удается.Итак, я посмотрел журналы и обнаружил:
Caused by: java.net.SocketException: Permission denied: connect
at sun.nio.ch.Net.connect0(Native Method) ~[?:1.8.0_144]
at sun.nio.ch.Net.connect(Net.java:454) ~[?:1.8.0_144]
at sun.nio.ch.Net.connect(Net.java:446) ~[?:1.8.0_144]
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648) ~[?:1.8.0_144]
at java.nio.channels.SocketChannel.open(SocketChannel.java:189) ~[?:1.8.0_144]
at oracle.net.nt.TimeoutSocketChannel.<init>(TimeoutSocketChannel.java:81) ~[ojdbc8.jar:12.2.0.1.0]
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:169) ~[ojdbc8.jar:12.2.0.1.0]
Так что, похоже, работает Security Manager, который блокирует доступ к сети.
Я использую тонкий JDBC-драйвер Oracle, поэтому не задействованы собственные библиотеки.Веб-приложение является 64-битной Windows.Java - это версия 8. Я использую новейшую версию Tomcat 8.0.
Как я могу ее настроить или отключить?Можно ли настроить это в файле WAR?Я не думаю, что возможно редактировать файл catalina.policy, это веб-приложение Azure.
Кажется, это зависит от IP-адреса, если IP-адрес находится в общедоступном Интернете, соединение установлено.сделал.Но с 10. . . * Непубличным IP базы данных в VNET возникает исключение java.net.SocketException.Может ли быть так, что какая-то сетевая ошибка, такая как «нет маршрута к хосту» или «отказано в соединении», преобразуется в это SocketException?