2016-07-12 2 views
0

fileupload 용 저지 응용 프로그램이 있습니다. 시작 중에 또는 응용 프로그램에 파일을 업로드 할 때 WebSphere 추적 로그에 오류가 발생합니다.저지 응용 - 시작시 오류

오류 :

The registered message body writers compatible with the MIME media type are: 
application/octet-stream -> 
    com.sun.jersey.core.impl.provider.entity.ByteArrayProvider 
    com.sun.jersey.core.impl.provider.entity.FileProvider 
    com.sun.jersey.core.impl.provider.entity.InputStreamProvider 
    com.sun.jersey.core.impl.provider.entity.DataSourceProvider 
    com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider 
*/* -> 
    com.sun.jersey.core.impl.provider.entity.FormProvider 
    com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider 
    com.sun.jersey.server.impl.template.ViewableMessageBodyWriter 
    com.sun.jersey.core.impl.provider.entity.StringProvider 
    com.sun.jersey.core.impl.provider.entity.ByteArrayProvider 
    com.sun.jersey.core.impl.provider.entity.FileProvider 
    com.sun.jersey.core.impl.provider.entity.InputStreamProvider 
    com.sun.jersey.core.impl.provider.entity.DataSourceProvider 
    com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General 
    com.sun.jersey.core.impl.provider.entity.ReaderProvider 
    com.sun.jersey.core.impl.provider.entity.DocumentProvider 
    com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider 
    com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter 
    com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General 
    com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General 

[7/12/16 13:26:16:263 CEST] 0000034e ContainerResp E Mapped exception to response: 500 (Internal Server Error) 
           javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.sun.proxy.$Proxy553, and Java type interface javax.servlet.http.HttpServletResponse, and MIME media type application/octet-stream was not found. 

     at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:284) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1510) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) 
     at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) 

의 Web.xml

<servlet> 
     <servlet-name>my-service</servlet-name> 
     <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
     <init-param> 
      <param-name>jersey.config.server.provider.packages</param-name> 
      <param-value>my.app.service</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

의 pom.xml

<dependency> 
      <groupId>com.sun.jersey</groupId> 
      <artifactId>jersey-server</artifactId> 
      <version>1.19</version> 
     </dependency> 

     <dependency> 
      <groupId>com.sun.jersey.contribs</groupId> 
      <artifactId>jersey-spring</artifactId> 
      <version>1.19</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>spring-beans</artifactId> 
        <groupId>org.springframework</groupId> 
       </exclusion> 
       <exclusion> 
        <artifactId>spring-core</artifactId> 
        <groupId>org.springframework</groupId> 
       </exclusion> 
       <exclusion> 
        <artifactId>spring-web</artifactId> 
        <groupId>org.springframework</groupId> 
       </exclusion> 
       <exclusion> 
        <artifactId>spring-context</artifactId> 
        <groupId>org.springframework</groupId> 
       </exclusion> 
       <exclusion> 
        <artifactId>spring-aop</artifactId> 
        <groupId>org.springframework</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>com.sun.jersey.contribs</groupId> 
      <artifactId>jersey-multipart</artifactId> 
      <version>1.19</version> 
     </dependency> 

나는 문제가 무엇인지 확실하지 않다 이리? 도와주세요.

편집 : 1

import com.fasterxml.jackson.databind.ObjectMapper; 
import com.sun.jersey.core.header.FormDataContentDisposition; 

@Autowired 
private ObjectMapper objectMapper; 

@POST 
@Path("/upload") 
@Consumes({MediaType.MULTIPART_FORM_DATA}) 
public HttpServletResponse attachDocument(@Context HttpServletRequest request, 
              @Context HttpServletResponse response, 
              @FormDataParam("file") InputStream fileInputStream, 
              @FormDataParam("file") FormDataContentDisposition filedata) { 

    String webServiceResponse = //call webservice here to store document 
    objectMapper.writeValue(response.getOutputStream(), webServiceResponse); 
} 
+0

예외가 throw되는 리소스 방법은 무엇입니까? –

+1

요청한 곳에서 Java 코드를 제공 할 수 있습니까? –

+0

@ jan.supol이 (가) java 클래스를 추가했습니다. – AJJ

답변

0

당신은 jaxrs 자원의 방법에서 HttpServletResponse을 반환하지 않습니다. 이 경우, 그 오류 로그의 말씀입니다 :

A message body writer for Java class com.sun.proxy.$Proxy553, and Java type interface javax.servlet.http.HttpServletResponse

(@Context에 의해 주입) 인터페이스 javax.servlet.http.HttpServletResponse는 프록시 클래스 com.sun.proxy.$Proxy553에 의해 구현됩니다. 저지에서, 당신이하고 싶은 것이 아닌 하나를 추가하지 않는 한 그것에 대한 MessageBodyWriter은 없습니다.

기본적으로 의 묶음이 있으며, 주로 jaxrs specification, 섹션 4.2.4에 이름이 지정된 저지가 있습니다. 다음과 같이 javax.ws.rs.core.Response을 반환하려고합니다.