Null InputStream при загрузке файла в веб-сервис Джерси Рест - PullRequest
0 голосов
/ 11 октября 2019

Я работаю над требованием выгрузки файлов, из-за технических ограничений мне пришлось использовать jquery & ajax для внешней обработки и jersey jax-RS для на стороне сервера . Проблема заключается в получении файловых данных со стороны клиента с использованием следующего кода.

JS на стороне клиента

            var formData = new FormData();
            formData.append('file', $(".hidden_file_chooser"+xxxxxx).get(0).files[0]);

            $.ajax({
                url : '/apiWeb2/ws/edition/uploadFile/111111111',
                type : 'POST',
                data : formData,
                cache : false,
                contentType : false,
                processData : false,
                success : function(data, textStatus, jqXHR) {
                    alert("yes");
                },
                error : function(jqXHR, textStatus, errorThrown) {
                    alert("no");
                }
            });

на стороне сервера

        @Path("/edition")
        public class UploadWS {

            @POST
            @Path("/uploadFile/{codeProduit}")
            @Consumes({MediaType.MULTIPART_FORM_DATA})
            @Produces({MediaType.APPLICATION_JSON})
            public String uploadFile(@PathParam("codeProduit") String codeProduit, @FormDataParam("file") InputStream fileInputStream, @FormDataParam("file") FormDataContentDisposition fileMetaData) {
                return new Gson().toJson("000");
            }
        }

web.xml сторона конфигурации

           <servlet>
                        <servlet-name>jersey-serlvet</servlet-name>
                        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
                        <init-param>
                            <param-name>jersey.config.server.provider.packages</param-name>
                            <param-value>*****</param-value>
                        </init-param>
                        <init-param>
                            <param-name>jersey.config.server.provider.classnames</param-name>
                            <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
                        </init-param>
                        <load-on-startup>1</load-on-startup>
                    </servlet>
                    <servlet-mapping>
                        <servlet-name>jersey-serlvet</servlet-name>
                        <url-pattern>/ws/*</url-pattern>
                    </servlet-mapping>

pom.xml связанные зависимости

        <dependency>
                                        <groupId>javax.ws.rs</groupId>
                                        <artifactId>javax.ws.rs-api</artifactId>
                                        <version>${jaxrs.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.media</groupId>
                                        <artifactId>jersey-media-multipart</artifactId>
                                        <version>${jersey2.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.core</groupId>
                                        <artifactId>jersey-client</artifactId>
                                        <version>${jersey2.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.containers</groupId>
                                        <artifactId>jersey-container-servlet</artifactId>
                                        <version>${jersey2.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.core</groupId>
                                        <artifactId>jersey-server</artifactId>
                                        <version>${jersey2.version}</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.bundles.repackaged</groupId>
                                        <artifactId>jersey-guava</artifactId>
                                        <version>2.25</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.core</groupId>
                                        <artifactId>jersey-common</artifactId>
                                        <version>2.26</version>
                                    </dependency>
                                    <dependency>
                                        <groupId>org.glassfish.jersey.inject</groupId>
                                        <artifactId>jersey-hk2</artifactId>
                                        <version>2.26</version>
                                    </dependency>





    <jersey2.version>2.26</jersey2.version>
    <jaxrs.version>2.1</jaxrs.version>

Я продолжаю получатьnull в параметре inputStream.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...