JBoss启动选项问题

时间:2011-12-28 16:39:48

标签: java jboss jboss7.x

我通过standalone.bat启动JBoss as7,它通过standalone.conf.bat获取它的JAVA_OPTS启动选项。我在standalone.conf.bat中设置了大部分JAVA_OPTS,我对一些JAVA_OPTS有一些疑问

-mp "/opt/jboss-as-7.0.0.Final/modules" 
-logmodule org.jboss.logmanager 
-jaxpmodule javax.xml.jaxp-provider

我尝试设置这些

set "JAVA_OPTS=%JAVA_OPTS% -mp /opt/jboss-as-7.0.0.Final/modules"
set "JAVA_OPTS=%JAVA_OPTS% -logmodule org.jboss.logmanager"
set "JAVA_OPTS=%JAVA_OPTS% -jaxpmodule javax.xml.jaxp-provider"
在standalone.conf.bat中

。这似乎不起作用,当我通过standalone.bat启动JBoss时,我收到“无法识别的选项-mp”或“无法识别的选项-logmodule”等错误。如果我从standalone.conf.bat中删除这些行,我的JBoss就能够成功启动。

我的问题是 - 我是否需要设置这些JBoss启动选项?我无法找到很多关于它们的文档,特别是'-mp'。如果是这样,设置这些启动选项的最佳方法是什么? JBoss不喜欢上面的语法。任何建议表示赞赏。

2 个答案:

答案 0 :(得分:3)

-mp -logmodule -jaxpmodule 选项属于JBoss,而不是Java解释器。您的启动失败是因为您将它们包含在Java选项列表中并且解释器正在阻塞(它无法识别这些选项)。

如果您不想绕过standalone.bat,我认为没有理由将这些选项移至standalone.conf.bat文件。

修改

JBoss 7.0.1的默认standalone.bat包含以下条目:

:RESTART
"%JAVA%" %JAVA_OPTS% ^
 "-Dorg.jboss.boot.log.file=%JBOSS_HOME%\standalone\log\boot.log" ^
 "-Dlogging.configuration=file:%JBOSS_HOME%/standalone/configuration/logging.properties" ^
    -jar "%JBOSS_HOME%\jboss-modules.jar" ^
    -mp "%MODULEPATH%" ^
    -logmodule "org.jboss.logmanager" ^
    -jaxpmodule "javax.xml.jaxp-provider" ^
     org.jboss.as.standalone ^
    -Djboss.home.dir="%JBOSS_HOME%" ^
     %*

如果要修改 -mp -logmodule -jaxpmodule 值,则只需在独立版中执行此操作即可。蝙蝠文件另外,看起来您使用的是默认值,因此甚至不需要进行任何更改。

答案 1 :(得分:3)

为什么java退出时出现无法识别的选项'错误

选项传递到java的顺序是相关

作为Perception writes在他的回答中,-mp-logmodule-jaxpmodule是JBoss选项。 Oracle Help Center解释了必须在class(要调用的类的名称)之后或-jar file.jar选项之后指定这些和其他非JVM选项:

java [JVM options] class [non-JVM options]
java [JVM options] -jar file.jar [non-JVM options]

(然后将非JVM选项传递给class的主函数,或者在使用-jar file.jar时,传递给JAR中Main-Class manifest header指示的启动类中的main函数文件)。

这就是为什么在JAVA_OPTS中设置JBoss选项不起作用的原因:它们位于-jar %JBOSS_HOME%\jboss-modules.jar选项之前,正如您在standalone.bat中看到的那样:

"%JAVA%" %JAVA_OPTS% ^
 "-Dorg.jboss.boot.log.file=%JBOSS_HOME%\standalone\log\boot.log" ^
 "-Dlogging.configuration=file:%JBOSS_HOME%/standalone/configuration/logging.properties" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^
-mp "%MODULEPATH%" ^
-logmodule "org.jboss.logmanager" ^
-jaxpmodule "javax.xml.jaxp-provider" ^
 org.jboss.as.standalone ^
-Djboss.home.dir="%JBOSS_HOME%" ^
 %*

java抱怨因为它需要一个合法的JVM选项。

提出您的问题

我是否需要设置这些JBoss启动选项?

这些是默认值,所以不,你不是。

设置这些启动选项的最佳方法是什么?

您可以将JBoss选项添加到SERVER_OPTS变量中,因为它附加到命令的末尾。

对于好奇:其他JBoss选项

您可以使用java -jar %JBOSS_HOME%\jboss-modules.jar列出其他JBoss选项:

Usage: java [-jvmoptions...] -jar jboss-modules.jar [-options...] <module-spec> [args...]
   java [-jvmoptions...] -jar jboss-modules.jar [-options...] -jar <jar-name> [args...]
   java [-jvmoptions...] -jar jboss-modules.jar [-options...] -cp <class-path> <class-name> [args...]
   java [-jvmoptions...] -jar jboss-modules.jar [-options...] -class <class-name> [args...]
   java [-jvmoptions...] -jar jboss-modules.jar -addindex [-modify] <jar-name>

where <module-spec> is a valid module specification string
and options include:

    -help         Display this message
    -modulepath <search path of directories>
    -mp <search path of directories>
                  A list of directories, separated by ':', where modules may be located
                  If not specified, the value of the "module.path" system property is used
    -class        Specify that the final argument is a
                  class to load from the class path; not compatible with -jar
    -cp,-classpath <search path of archives or directories>
                  A search path for class files; implies -class
    -dep,-dependencies <module-spec>[,<module-spec>,...]
                  A list of module dependencies to add to the class path;
                  requires -class or -cp
    -deptree      Print the dependency tree of the given module instead of running it
    -jar          Specify that the final argument is the name of a
                  JAR file to run as a module; not compatible with -class
    -jaxpmodule <module-spec>
                  The default JAXP implementation to use of the JDK
    -secmgr       Run with a security manager installed; not compatible with -secmgrmodule
    -secmgrmodule <module-spec>
                  Run with a security manager module; not compatible with -secmgr
    -addindex     Specify that the final argument is a
                  jar to create an index for
    -modify       Modify the indexes jar in-place
    -version      Print version and exit