Bluemix - jaxb jar



我的应用程序使用apache wink中的jaxb jar (jaxb-impl-2.2.1.1.jar)。我在bluemix上部署了我的应用程序。

当它访问com.sun.xml.bind.marshaller.CharacterEscapeHandler时,它在bluemix上以NoClassDefFoundError失败。

bluemix是否使用其他没有这个类的jar版本?我怎么检查这个?

启用jaxb-2.2特性:

cf set-env <appname> JBP_CONFIG_LIBERTY "app_archive: {features: ["jsf-2.0", "jsp-2.2", "servlet-3.0", "ejbLite-3.1", "cdi-1.0", "jpa-2.0", "jdbc-4.0", "jndi-1.0", "managedBeans-1.0", "jaxrs-1.1", "jaxb-2.2"]}"

你也可以尝试使用OpenJDK

cf set-env myapp JVM 'openjdk'

当您在Liberty上运行时,您不能在应用程序中包含wink jaxb jar,您的代码应该只依赖jaxb规范中包含的类(主要在javax.xml.bind包中),而不是任何特定于wink的类。

然后只需要在server.xml中包含jaxb-2.2特性。

有一个关于在liberty上开发jaxb应用程序的教程,它详细介绍了配置开发环境和liberty服务器所需的步骤。

最新更新