WebSphere Application Server JVM参数未正确读取

时间:2014-08-28 08:52:02

标签: java jvm noclassdeffounderror websphere-7 jvm-arguments

我们正在使用WebSphere 7- Application服务器来部署项目,并且这个应用程序服务器给出了像这样的简单JVM参数,

–Dsecurityresource=/web/sharedLibraries/security_config.xml -DConfig=/web/properties/Config.ini

但是当尝试启动应用程序服务器时,会抛出本机错误(native_stderr.log),

<?xml version="1.0" ?>

<verbosegc version="GA24_Java6_SR15_20131016_1337_B170922_CMPRSS">

<initialized>
  <attribute name="gcPolicy" value="-Xgcpolicy:optthruput" />
  <attribute name="maxHeapSize" value="0x100000000" />
  <attribute name="initialHeapSize" value="0xc0000000" />
  <attribute name="compressedRefs" value="true" />
  <attribute name="compressedRefsDisplacement" value="0x0" />
  <attribute name="compressedRefsShift" value="0x3" />
  <attribute name="pageSize" value="0x10000" />
  <attribute name="requestedPageSize" value="0x10000" />
</initialized>

Exception in thread "main" java.lang.NoClassDefFoundError: Dsecurityresource=.web.sharedLibraries.security-config.xml
Caused by: java.lang.ClassNotFoundException: Dsecurityresource=.web.sharedLibraries.FalconCluster.security-config.xml
    at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:677)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:643)
</verbosegc>
Could not find the main class: Dsecurityresource=/web/sharedLibraries/security-config.xml.  Program will exit.

JVM参数在WebSphere中的以下位置给出。

Servers > Server Types > WebSphere application servers > server_name >Java and process management > Process definition > Java virtual machine and in Generic JVM arguments

它很奇怪,因为它抛出了NoClassDefFoundError。

或者Websphere中是否有其他可能导致此问题的配置?

注意:JVM参数中提供的文件和路径存在且具有读取和执行权限

提前致谢。

1 个答案:

答案 0 :(得分:10)

您在哪里设置这些参数?
您应该通过管理控制台设置它们:
Servers > Server Types > WebSphere application servers > server_name。 然后,点击Java and process management > Process definition > Java virtual machine

要么把它们放在:

  • Generic JVM arguments使用-Dparameter=value
  • Custom Properties将参数定义为名称,将值定义为值

UPDATE
当我粘贴你的变量时,它包含以下隐形字符而不是-D并得到相同的异常:

–Dsecurityresource

然而,当我去:

C:\IBM\WebSphere\AppServer85\profiles\AppSrv1\config\cells\cellName\nodes\nodeBame\servers\server1 

并在server.xml文件中手动修复了条目,服务器正确启动。

 <jvmEntries xmi:id="JavaVirtualMachine_1183121908656" .... genericJvmArguments="-Xquickstart -Dsecurityresource=/web/sharedLibraries/security_config.xml -DConfig=/web/properties/Config.ini" ...>

因此,请使用文本编辑器打开该文件,并在-之前修复D字符。