簡體   English   中英

在Tomcat中將Multipart特性添加到Jersey Web Service中

[英]Adding Multipart feature into Jersey Web Service in Tomcat

我正在嘗試實現一個Jax-RS(Jersey),它有一個/ upload端點,用戶可以使用Multipart上傳圖像。 項目已經實現了其他部分並且工作正常,當我嘗試添加Multipart功能時會出現問題。

我正在使用IntelliJ IDEA和Tomcat 8.5.xx來部署我的應用程序。

我在pom.xml中的依賴關系如下;

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.25.1</version> <!-- 2.10.1 -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.25.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>2.25.1</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.42</version>
    </dependency>
</dependencies>

這是我的web.xml部分;

<init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value> org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>

當我在Tomcat中啟動WAR時,它顯示內部服務器錯誤500和日志;

java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
    org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:274)
    org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:221)
    org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:453)
    org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:387)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)

我不知道問題的原因是什么。 從異常的名稱,我猜它與web.xml添加的MultipartFeature有關。 然而,由於我沒有足夠的經驗,而且我在google上的搜索效果不佳,我需要更有經驗的人的幫助。

那么,當對該特定URL有多個映射到jersey資源方法時,通常會出現這樣的錯誤。

您在問題中提到您正在添加上傳Web服務/upload路徑。 因此,可能的原因是之前開發的API之一已存在此路徑。 因此,請相應地檢查並更新此路徑。

此錯誤還有其他可能的原因,您可以在此處此處找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM