【问题标题】:Jersey REST + Grizzly webservice, Uploading file errorJersey REST + Grizzly webservice,上传文件错误
【发布时间】:2014-08-21 19:40:36
【问题描述】:

这是我上传文件所需要的

@POST
@Path("/uploadFile")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
public Response uploadFileSuite(@HeaderParam("Access-Control-Allow-Origin")
                                @FormParam("file") InputStream uploadedInputStream, 
                                @FormDataParam("file") FormDataContentDisposition fileDetail,
                                @QueryParam("key") String key)  { 
    //path = global variable
    String uploadedFileLocation = PATH + fileDetail.getFileName();
    // save it
    writeToFile(uploadedInputStream, uploadedFileLocation);
    String output = "File uploaded to : " + uploadedFileLocation;
    return Response.status(200).entity(output).build();
 }

但是,当我尝试编译时,我不断收到以下错误:

  SEVERE: Missing dependency for method public javax.ws.rs.core.Response Project.MyResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition,java.lang.String) at parameter at index 0
  SEVERE: Missing dependency for method public javax.ws.rs.core.Response Project.MyResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition,java.lang.String) at parameter at index 1
  SEVERE: Missing dependency for method public javax.ws.rs.core.Response Project.MyResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition,java.lang.String) at parameter at index 0
  SEVERE: Missing dependency for method public javax.ws.rs.core.Response Project.MyResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition,java.lang.String) at parameter at index 1
  SEVERE: Method, public javax.ws.rs.core.Response Project.MyResource.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition,java.lang.String), annotated with POST of resource, class Project.MyResource, is not recognized as valid resource method.

我尝试了一切来修复它,但似乎没有任何效果。

任何帮助将不胜感激。

这是我的 pom.xml

<dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-grizzly</artifactId>
        <version>${jersey-version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-grizzly2</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-multipart</artifactId>
        <version>1.8</version>
    </dependency>
       <dependency>
        <groupId>com.sun.grizzly</groupId>
        <artifactId>grizzly-servlet-webserver</artifactId>
        <version>1.9.31</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>${jersey-version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>lrfProject.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>
<properties>
    <jersey-version>1.8</jersey-version>
</properties>
<repositories>
    <repository>
        <id>glassfish.java.net</id>
        <name>GlassFish Maven Repository</name>
        <url>http://download.java.net/maven/glassfish</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>m2.java.net</id>
        <name>Java.net Maven 2 Repository</name>
        <url>http://download.java.net/maven/2</url>
        <layout>default</layout>
    </repository>
</repositories>

【问题讨论】:

    标签: java rest jersey grizzly


    【解决方案1】:

    看起来您在单个参数上有两个参数注释:

    @HeaderParam("Access-Control-Allow-Origin")
    @FormParam("file") InputStream uploadedInputStream,
    

    应该是:

    @HeaderParam("Access-Control-Allow-Origin") String origin,
    @FormParam("file") InputStream uploadedInputStream,
    

    ?

    【讨论】:

    • 不,没关系,我的所有其他方法都有相同的参数并且它们有效。它只对我的上传功能不起作用:(
    猜你喜欢
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多