`
fox.tan
  • 浏览: 63646 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

解决ClassNotFoundException: javax.validation.spi.ValidationProvider

阅读更多

在我们这边非常正常的一个VM环境,但在中东一个Sales的机器上load vm就是不正常,VM中系统的环境如下:

Spring 3.0
Spring DM(OSGi) 2.0.M1

Hibernate Validator
其它XX


系统启动时出现:

 

Caused by: java.lang.ClassNotFoundException: javax.validation.spi.ValidationProvider
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	... 59 more

 

百思不得其解,同样的VM在我们这边load起来没有任何问题,但在sales那边load就有问题。问题出现了就解决吧!这类问题也只能在出现问题的机器上解决,因为我们这无法重现。

VM环境中tomcat是通过windows service启动的,会不会是运行tomcat的jdk有问题呢(tomcat service应该默认会取系统注册表中注册的jre)。

用命令行方式启动一下tomcat试试,点击start.bat,命令窗口一闪而过。这应该是没有设置JAVA_HOME,在catalina.bat中设置JAVA_HOME到JDK(非JRE)路径,再点start.bat,系统启动一切正常,ClassNotFoundException: javax.validation.spi.ValidationProvider,也没有了。


这个错误是因为tomcat service默认用jre启动引起的,但为什么在同样的VM,运行起来会有差异呢,还是不知道原因!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics