java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC 清疚 2024-04-18 11:49 1阅读 0赞 # java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC # ## 本地环境和生产环境不同 ## 在一个接口对接过程中,在IDEA环境中使用接口方提供的cxf客户端代码调用cxf的webservice接口,运行正常,待到去生产环境部署就会报错。 报错代码 java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:718) at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:732) at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createSchemaCompiler(DynamicClientFactory.java:445) at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:325) at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:243) at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:236) at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:191) 结论应该是本地IDEA使用JDK作为编译和运行环境 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1NjA2MDEw_size_16_color_FFFFFF_t_70] 而服务器上Tomcat容器使用的是默认的JRE作为运行环境。 这里贴出一个我觉得比较全面的分析 [https://blog.csdn.net/Ideality\_hunter/article/details/73613161][https_blog.csdn.net_Ideality_hunter_article_details_73613161] ## 问题解决 ## Tomcat默认情况下会用系统的环境变量中找到JAVA\_HOME和JRE\_HOME。但是有的时候我们需要不同版本的JDK共存。 可以在$\{TOMCAT\_HOME\}/bin/catalina.bat最前面设置JAVA\_HOME和JRE\_HOME。 set JAVA_HOME=D:\JAVA_HOME\java6\jdk1.6.0_45 set JRE_HOME=D:\JAVA_HOME\java6\jdk1.6.0_45\jre 或修改$\{TOMCAT\_HOME\}/bin/setclasspath.bat文件中添加 set "JAVA_HOME=D:\JAVA_HOME\java6\jdk1.6.0_45" set "JRE_HOME=D:\JAVA_HOME\java6\jdk1.6.0_45\jre" 在linux下Tomcat配置连接jdk路径$\{TOMCAT\_HOME\}/bin/catalina.sh或setenv.sh文件: export JAVA_HOME=/usr/java/jdk1.7.0_55 export JRE_HOME=/usr/java/jdk1.7.0_55/jre 另外,有时需要设置Tomcat的最大内存,方法如下: windows下在catalina.bat中添加 set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m linux下在catalina.sh中添加 JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1NjA2MDEw_size_16_color_FFFFFF_t_70]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/18/cfebfdb057804d828f37202122a05da2.png [https_blog.csdn.net_Ideality_hunter_article_details_73613161]: https://blog.csdn.net/Ideality_hunter/article/details/73613161
还没有评论,来说两句吧...