【发布时间】:2012-06-18 08:29:39
【问题描述】:
我正在维护一个使用 java.protocol.handler 的 Web 应用程序。我用一个值初始化它:-Djava.protocol.handler.pkgs=<my value>。
问题如下:
1.如果我部署应用程序。直接从eclipse到tomcat,使用这个instruction(直接引用Tomcat主类)并在VM参数选项卡中传递-Djava.protocol.handler.pkgs=<my value>参数,应用程序正常工作并初始化-protocol依赖bean。
2.如果我将 .war 文件直接部署到 Tomcat/webapps 并使用 catalina.bat 启动 Tomcat(将 -Djava.protocol.handler.pkgs=<my value> 添加到 JAVA_OPTS)我得到:Malformed URL supplied Exception。
3.如果我从eclipse启动Tomcat(并指定类似于第1点的VM参数。)相同的.war将被正确部署。
我的猜测是 catalina.bat 和 eclipse 初始化 VM 参数的方式不同。或者也许我应该以某种方式将我的项目 .jar 附加到 Tomcat。
感谢您的任何提示。我可以提供更多所需的详细信息
【问题讨论】:
-
您的详细信息有些粗略 - 您可能应该提供 -Djava.protocol.handler.pkgs=XXX 值,甚至是导致错误的整个 .bat 文件。如果可能,还包括错误的完整详细信息,包括堆栈跟踪。
-
不幸的是,我无法提供确切的协议名称,但我认为它并不真正相关,因为它在某些情况下有效,这就是我转向 JVM 设置差异的原因。至于 catalina.bat - 它是标准的,Apache Tomcat 6.0.35 中未更改的文件,setenv.bat 文件:set JAVA_OPTS=-Djava.protocol.handler.pkgs=
-DJINTEGRA_NATIVE_MODE -
错误(不幸的是无法复制堆栈跟踪,因为我使用了一些属性 java 类):属性“configURL”抛出异常;嵌套异常:提供的 URL 格式错误:null。我的猜测是这个错误发生是因为 JVM java.protocol.handler.pkgs 参数没有被初始化,或者在创建依赖它的 bean 之后被初始化,因此 URL 被视为格式错误
-
sry for double post,无法编辑:不幸的是,我无法提供确切的协议名称,但我认为它并不真正相关,因为它在某些情况下有效,这就是我转向 JVM 设置差异的原因。至于 catalina.bat - 它是标准的,Apache Tomcat 6.0.35 中未更改的文件,setenv.bat 文件: set JAVA_OPTS=-Djava.protocol.handler.pkgs=
-DJINTEGRA_NATIVE_MODE 我还要提到我使用 maven依赖项下载 java.protocl.handler .jar 和 Spring 以使用 URL 初始化 Bean。其中 URL 采用 格式。 -
如果没有更具体的信息(您无法提供),您不可能得到任何猜测。