java.lang.UnsatisfiedLinkError:... libocijdbc12.so:libclntsh.so.12.1:无法启用可执行堆栈,因为共享对象需要:权限被拒绝

时间:2017-11-23 11:47:37

标签: oracle tomcat unsatisfiedlinkerror

在服务器上更新Tomcat后

Updated     tomcat-7.0.69-11.el7_3.noarch                              @rhel-7-server-rpms
Update             7.0.76-3.el7_4.noarch                               @rhel-7-server-rpms
Updated     tomcat-admin-webapps-7.0.69-11.el7_3.noarch                @rhel-7-server-rpms
Update                           7.0.76-3.el7_4.noarch                 @rhel-7-server-rpms
Updated     tomcat-el-2.2-api-7.0.69-11.el7_3.noarch                   @rhel-7-server-rpms
Update                        7.0.76-3.el7_4.noarch                    @rhel-7-server-rpms
Updated     tomcat-jsp-2.2-api-7.0.69-11.el7_3.noarch                  @rhel-7-server-rpms
Update                         7.0.76-3.el7_4.noarch                   @rhel-7-server-rpms
Updated     tomcat-lib-7.0.69-11.el7_3.noarch                          @rhel-7-server-rpms
Update                 7.0.76-3.el7_4.noarch                           @rhel-7-server-rpms
Updated     tomcat-servlet-3.0-api-7.0.69-11.el7_3.noarch              @rhel-7-server-rpms
Update                             7.0.76-3.el7_4.noarch               @rhel-7-server-rpms

我收到错误: java.lang.UnsatisfiedLinkError:/usr/lib/oracle/12.1/client64/lib/libocijdbc12.so:libclntsh.so.12.1:无法启用可执行堆栈,因为共享对象需要:权限拒绝

/usr/lib/oracle/12.1/client64/lib/中的文件是可读的(无需执行权限)。

在此更新之前服务器正常运行(LD_LIBRARY_PATH, 设置了TNS_ADMIN,ORACLE_HOME。

独立的Java应用程序使用相同的Oracle客户端正常工作,因此问题应该在Tomcat中,但我不知道要检查什么。

有没有人对要查找的内容有一些提示?

[编辑:]禁用Selinux一切都很好。我必须在Selinux中设置哪些设置才能解决此问题?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我在猜测。打开' httpd_execmem'和' httpd_can_network_connect_db'但你必须检查其他条目httpd *的目的是什么。

答案 1 :(得分:0)

好像我的问题是Oracle Instant Client 12.1。 重新安装12.1并没有解决问题,但卸载12.1客户端和安装Instant Client 12.2确实解决了我的问题而没有改变SELinux中的任何内容。

希望这会有所帮助。

问候!