2013-03-20 38 views
0

在部署Glassfish的2.1.1服務器上使用多部分澤西1.13戰爭,以下錯誤消息出現後:澤西多部分1.13和Glassfish 2.1.1看起來是不相容的

方法,公開的javax。 ws.rs.core.Response no.xx.nn.resources.ConverterResources.post(java.lang.String,java.lang.String,java.io.InputStream),使用資源的POST註釋,類oo.xx.nn .resources.ConverterResources,不被認爲是用@HttpMethod註釋的有效Java方法。 at com.sun.jersey.server.impl.model.method.ResourceHttpMethod。(ResourceHttpMethod.java:92)at com.sun.jersey.server.impl.model.method.ResourceHttpMethod。(ResourceHttpMethod.java:69)at com .sun.jersey.server.impl.model.method.ResourceHttpMethod。(ResourceHttpMethod.java:61)at com.sun.jersey.server.impl.model.ResourceClass.processMethods(ResourceClass.java:283)at com.sun。 。jersey.server.impl.model.ResourceClass(ResourceClass.java:131)

通過試驗和失敗,我發現了,這是屬於下面的代碼:

@POST 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response post(@FormDataParam("providerId") int providerId, 
        @FormDataParam("datasetId") int datasetid, 
        @FormDataParam("file") InputStream file) 

而更多具體是@FormDataParam參數註釋。除去這些時,戰爭部署得很好。我試圖添加@DefaultValue到所有@FormDataParam s沒有任何運氣。另外,我也嘗試添加一個@Produces,也沒有任何運氣。似乎這個錯誤與目前的@Consumes(..)也沒有任何關係。

web.xml小艾標準:

<servlet> 
    <servlet-name>xxxx</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>oo.xx.nn.resources</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>xxxx</servlet-name> 
    <url-pattern>/zzzz/*</url-pattern> 
</servlet-mapping> 

我已經包括了所有必需的球衣依賴關係,如下圖所示:

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>1.13</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-servlet</artifactId> 
    <version>1.13</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey.contribs</groupId> 
    <artifactId>jersey-multipart</artifactId> 
    <version>1.13</version> 
</dependency> 

我也試圖從構思到的Tomcat6和Glassfish 3.1.1部署,這完美的作品。在Java 7上運行本地和遠程(無法運行)。有任何想法嗎?

回答