Service 当我将Wildfly 20作为服务运行时,设置一些关键路径时出现问题

Service 当我将Wildfly 20作为服务运行时,设置一些关键路径时出现问题,service,wildfly,classpath,Service,Wildfly,Classpath,当我将Wildfly 20作为服务运行时,设置一些关键路径时遇到问题 当我安装(在“VM1”中)Wildfly-in/home/myuser/而不是/opt and-NOT-as-service并使用以下内容运行它时,我能够使用管理控制台的“测试连接”使用sajdbc4驱动程序连接到Sybase SQL Anywhere数据库 cd ~/wildfly-20.0.1.Final/bin export LD_LIBRARY_PATH=/home/myuser/wildfly-20.0.1.Fina

当我将Wildfly 20作为服务运行时,设置一些关键路径时遇到问题

当我安装(在“VM1”中)Wildfly-in/home/myuser/而不是/opt and-NOT-as-service并使用以下内容运行它时,我能够使用管理控制台的“测试连接”使用sajdbc4驱动程序连接到Sybase SQL Anywhere数据库

cd ~/wildfly-20.0.1.Final/bin
export LD_LIBRARY_PATH=/home/myuser/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
export CLASSPATH=.:/home/myuser/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar
./standalone.sh
LD_LIBRARY_PATH设置驱动程序支持文件的路径

另一方面,当我以与之前完全相同的方式安装Wildfly(在“VM2”中)时,除了安装到/opt中以及以下将Wildfly作为服务运行的额外步骤外,管理控制台的“测试连接”失败:

cd ~/wildfly-20.0.1.Final/bin
export LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
export CLASSPATH=.:/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar
sudo systemctl start wildfly

2020-08-28 13:13:41,341 INFO [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183:
Service status report WFLYCTL0184: New missing/unsatisfied dependencies: service jboss.jdbc-driver.sajdbc4_jar (missing) dependents: [service jboss.driver-demander.java:jboss/datasources/TestDB, service org.wildfly.data-source.TestDB]
我可以在“VM02”系统上运行一个简单的Java测试应用程序,该应用程序通过以下方式连接和转储数据库表:

cd $HOME/Desktop
export LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
export CLASSPATH=.:/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar
java sajdbc4DriverTest.java
这表明所有驱动程序文件都位于和LD_LIBRARY_路径位置。请注意,Wildlfly作为服务的启动使用相同的路径

有人能解释为什么Wildfly会忽略我在启动服务之前设置的两条路径吗


提前感谢。

服务环境变量不是这样设置的。即使是这样,sudo的使用也会给新用户带来新的环境变量

相反,如果您按照
Wildfly-20.0.1.Final/docs/contrib/scripts/systemd
中的说明安装了Wildfly,请在
/etc/Wildfly/Wildfly.conf
中添加环境变量。更像是:

# The configuration you want to run
WILDFLY_CONFIG=standalone.xml

# The mode you want to run
WILDFLY_MODE=standalone

# The address to bind to
WILDFLY_BIND=0.0.0.0

# Add Sybase native library dir
LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main

我觉得您不需要设置类路径,但我认为这也不会有什么坏处。

非常好的stdunbar!这就解决了问题。非常感谢你的帮助!