我正在将 WAR 部署到 Windows 2003 Server 机器上的 Tomcat 6 或 Tomcat 7 服务器中。错误看起来像
java.lang.Exception: Error initializing iSec web service proxy: Unable to create JAXBContext for generated packages: "com.integrity_apps" doesnt contain ObjectFactory.class or jaxb.index.
这是我之前在 tools.jar 不在我的应用程序的类路径中时得到的。我使用默认 Web 容器从 STS 运行 grails 应用程序,我能够通过在 lib 目录中使用 tools.jar 重新安装 JDK 并确保正确设置 JAVA_HOME 来解决此问题。
我在服务器上尝试了相同的步骤 - 仅安装 JDK,确保 JAVA_HOME 指向它,并将我的 WAR 放入 Tomcat 容器中。我仍然收到错误。任何人都可以提出为什么会发生这种情况吗?
作为进一步的数据点,我注意到如果在服务器上,我直接从命令提示符运行 Tomcat7.exe(JAVA_HOME 设置为系统变量),错误就会消失。如果我从服务管理器运行它,错误又回来了。 谢谢
最佳答案
看起来“com.integrity_apps”是包含 JAXB bean 类的包吗?我认为它在包中缺少 ObjectFactory 类。
检查是否有名为“com.integrity_apps”的包以及该包中是否有名为 ObjectFactory 的类。如果没有,您可能想要添加它或使用其他方式让 JAXBContext 知道如何创建您的 JAXB bean。 SO 上的这个问题可能会有所帮助: Do you always need an ObjectFactory class when using JAXB?
关于java - 具有类路径问题的 grails war 的 Tomcat 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829519/