【问题标题】:Jackson Version for Amazon s3 upload API In Glassfish 4.1Glassfish 4.1 中 Amazon s3 上传 API 的杰克逊版本
【发布时间】:2017-10-26 20:46:54
【问题描述】:

您好,我在 glassfish 中遇到以下错误

警告:调用 EJB 期间发生系统异常 文件上传,方法:public java.lang.String com.sahvidya.ejb.entityoperations.FileUpload.personalFileUploadFromSystem(com.sahvidya.entity.entitysystem.PersonalDirectory,org.primefaces.model.UploadedFile,java.lang.String) 抛出 java.io.IOException


警告:javax.ejb.TransactionRolledbackLocalException:从 bean 抛出的异常:java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper;

通过查看各种博客,我了解到 glassfish 4.1 版具有较旧的杰克逊库(2.4),它没有这种方法,需要升级 Jakcson 版本(2.8)。我想升级我的 glassfish,但遇到了其他问题。保持相同的 glassfish 版本将是升级杰克逊版本的方法。只需添加更新的杰克逊 jar 文件项目就可以解决目的吗?项目中可用的两个jackson版本会不会出现版本冲突问题。一个来自 Netbeans,另一个是我手动添加的。

【问题讨论】:

    标签: jakarta-ee amazon-ec2 netbeans-8 glassfish-4 jackson-databind


    【解决方案1】:

    glassfish 4.1.1 确实捆绑在一些杰克逊罐子中:

    ./glassfish/modules/jackson-jaxrs-base.jar
    ./glassfish/modules/jackson-annotations.jar
    ./glassfish/modules/jersey-media-json-jackson.jar
    ./glassfish/modules/jackson-databind.jar
    ./glassfish/modules/jackson-jaxrs-json-provider.jar
    ./glassfish/modules/jackson-core.jar
    

    jackson-core.jar 的版本为 2.3.2,所以这就是我们的 glassfish 部署的应用遇到问题的原因。

    覆盖很容易。将 WEB-INF/glassfish-web.xml 添加到您的 web 应用程序中,稍后包含此内容的杰克逊依赖项:

    <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD 
    GlassFish Application Server 3.1 Servlet 3.0//EN" 
    "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
    <glassfish-web-app>
       <class-loader delegate="false"/>
    </glassfish-web-app>
    

    尽管在 DOCTYPE 中引用了 3.1,但它在 4.1.1 中运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 2012-09-17
      • 2020-04-12
      相关资源
      最近更新 更多