Java 未正确读取WebSphere Application Server JVM参数

Java 未正确读取WebSphere Application Server JVM参数,java,jvm,noclassdeffounderror,websphere-7,jvm-arguments,Java,Jvm,Noclassdeffounderror,Websphere 7,Jvm Arguments,我们使用WebSphere7-ApplicationServer来部署项目,这个应用服务器被提供了如下简单的JVM参数 –Dsecurityresource=/web/sharedLibraries/security_config.xml -DConfig=/web/properties/Config.ini 但是当尝试启动应用程序服务器时,会抛出一个本机错误(native_stderr.log),如下所示: <?xml version="1.0" ?> <verboseg

我们使用WebSphere7-ApplicationServer来部署项目,这个应用服务器被提供了如下简单的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.
这很奇怪,因为它正在抛出NoClassDefFoundError

或者Websphere中是否存在可能导致此问题的任何其他配置

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


提前感谢。

您在哪里设置这些参数?
您应该通过管理控制台进行设置:
服务器>服务器类型>WebSphere应用程序服务器>服务器名称
。 然后,单击
Java和流程管理>流程定义>Java虚拟机

或者把它们放在:

  • 通用JVM参数
    使用
    -Dparameter=value
  • 或者
    自定义属性
    将参数定义为名称,将值定义为值
更新
当我粘贴变量时,它包含以下不可见字符而不是-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

之前的
-
字符查看NoClassDefFoundError,我认为您没有提到作为JVM参数的参数。它被解析为类name@Neeraj:它作为JVM参数传递(在文章中编辑)。但有些人认为它是如何被当作类名的。这一直是个谜。是的,参数设置在正确的位置,正如您所说的服务器>服务器类型>WebSphere应用程序服务器>服务器名称>Java和流程管理>流程定义>Java虚拟机和通用JVM参数。抱歉,我忘了在前面提到这一点。因为它讲述了java.lang.NoClassDefFoundError:Dsecurityresource=.web.sharedLibraries.security-config.xml,所以我猜在该参数之后有隐藏的\n。尝试将这些参数复制到纯文本编辑器并返回,或清除并手动键入。无\n字符。所有参数都很好。“但还是同一个问题。”拉贾斯更新了答案。可能发现了您的问题。我来这里是为了删除类似的问题,但我找到了答案中的文件。谢谢各位
 <jvmEntries xmi:id="JavaVirtualMachine_1183121908656" .... genericJvmArguments="-Xquickstart -Dsecurityresource=/web/sharedLibraries/security_config.xml -DConfig=/web/properties/Config.ini" ...>