2017-10-31 32 views
1

중복 요청으로 간주하지 마십시오. 나는 게시물을 모두 stackoverflow에 게시했습니다. 그 중 아무도 응답하지 않았습니다. 나는 응답을 찾지 못했습니다. 내가 독립 실행 형 응용 프로그램을 통해 코드 의 동일한 조각으로 GET 요청을 아주 이상한 문제에 직면하고있다Content-type text/html의 MessageBodyReader를 찾을 수없고 interface java.util.List를 입력 할 수 없습니다.

(내부를 주()) :

문제입니다. 이 같은 코드는 제이보스 (10) 서버에 자바 EE 애플리케이션에 넣고 배포 된 경우로, 가 오류를주는 경우 작동

"콘텐츠 형식 text/html과의 MessageBodyReader을 찾아 인터페이스 자바를 입력 할 수 없습니다. util.List "

코드 :

ClientConfig configuration = new ClientConfig(); 
configuration.property(ClientProperties.CONNECT_TIMEOUT, 10000); 
configuration.property(ClientProperties.READ_TIMEOUT, 10000); 
Client iexRestClient=ClientBuilder.newClient(configuration); 
WebTarget webTarget = 
iexRestClient.target("https://api.iextrading.com/1.0/ref-data/symbols/"); 
Response response = 
webTarget.request().accept(MediaType.APPLICATION_JSON).get(Response.class); 
System.out.println("response status "+response.getStatus()); 
List<IEXTicker> tickers = response.readEntity(new 
GenericType<List<IEXTicker>>(){}); 
System.out.println("size of tickers "+tickers.size()); 

필수 항아리 (pom.xml 파일)

,
<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>2.26</version> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.inject</groupId> 
    <artifactId>jersey-hk2</artifactId> 
    <version>2.26</version> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-json-jackson</artifactId> 
    <version>2.26</version> 
</dependency> 

모델 클래스 : IEX_Ticker.java

@Entity 
@Table(name = "IEX_Ticker") 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class IEXTicker implements Serializable { 


    private static final long serialVersionUID = 1L; 

    public IEXTicker() { 
     super(); 
    } 

    @Id 
    @Column(name = "symbol", length = 20) 
    private String symbol; 

    @Column(name = "name", length = 500) 
    private String name; 

    @Column(name = "date", length = 20) 
    private String date; 

    @Column(name = "isEnabled") 
    private boolean isEnabled; 

    @Column(name = "type", length = 20) 
    private String type; 

    public String getSymbol() { 
     return symbol; 
    } 

    public void setSymbol(String symbol) { 
     this.symbol = symbol; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getDate() { 
     return date; 
    } 

    public void setDate(String date) { 
     this.date = date; 
    } 


    public boolean isEnabled() { 
     return isEnabled; 
    } 

    public void setEnabled(boolean isEnabled) { 
     this.isEnabled = isEnabled; 
    } 


    public String getType() { 
     return type; 
    } 

    public void setType(String type) { 
     this.type = type; 
    } 

    public String toString() { 
     return "Symbol :" + symbol + " Name : " + name + " Date : " + date + " IsEnabled : 
     "+isEnabled+" Type: 
     "+type; 
    } 

} 

오류 :

2017년 10월 31일 20시 32분 17초 오류 열려진 : 71 - javax.ws.rs .ProcessingException : RESTEASY003145 : content-type text/html의 MessageBodyReader를 찾을 수없고 interface java.util.List를 입력 할 수 없습니다.
2017-10-31 20:32:17 오류 stderr : 71 - javax.ws.rs.ProcessingException : RESTEASY00 3145 : content-type text/html의 MessageBodyReader를 찾을 수없고 interface java.util.List를 입력 할 수 없습니다.
2017-10-31 20:32:18 오류 stderr : 71 - org.jboss.resteasy.core.interception. ClientReaderInterceptorContext.throwReaderNotFound (ClientReaderInterceptorContext.java:42)
2017년 10월 31일 20시 32분 18초 열려진 ERROR : 71 - org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader에서 (AbstractReaderInterceptorContext.java:75)
2017-10-31 20:32:18 ERROR stderr : 71 - at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed (AbstractReaderInterceptorContext.java:52)
2017-10-31 20:32:18 오류 stderr : 71 - at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom (ClientResponse.java:251)
2017-10-31 20:32:18 ERROR stderr : 71 - at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity (ClientResponse.java:181)
2017-10-31 20:32 : 18 오류 stderr : 71 - at org.jboss.resteasy.specimpl.BuiltResponse.readEntity (BuiltResponse.java:225)
2017-10-31 20:32:18 오류 stderr : 71 - com.swigel.iex.api에서 .IEXTickerOperation.populateIEXTickerData1 (IEXTickerOperation.java:127)
2017년 10월 31일 20시 32분 18초 ERROR의 열려진 : 71 - sun.reflect.NativeMethodAccessorImpl.invoke0 (원시 메소드)에
2017년 10월 31일 20시 32분 : 18 ERROR stderr : 71 - sun.reflect.NativeMethodAccessorImpl.invoke (알 수없는 소스)
2017-10-31 20:32:18 오류 stderr : 71 - sun.reflect.DelegatingMethodAccessorImpl에서 .invoke (알 수없는 소스)
2017-10-31 20:32:18 오류 stderr : 71 - java.lang.reflect.Method.호출 (알 소스)
2017년 10월 31일 20시 32분 18초 ERROR의 열려진 : 71 - org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation (ManagedReferenceMethodInterceptor.java:52)에서
2017년 10월 31일 20:32:18 ERROR stderr : 71 - org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
2017-10-31 20:32:18 오류 stderr : 71 - org.jboss.invocation에서 .InterceptorContext $ Invocation.proceed (InterceptorContext.java:437)
2017-10-31 20:32:18 오류 stderr : 71 - at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception (Jsr299BindingsInterceptor.java:82))
2017-10-31 20:32:18 오류 stderr : 71 - at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation (Jsr299Bindi ngsInterceptor.java:93)
2017-10-31 20:32:18 ERROR stderr : 71 - org.jboss.as.ee.component.interceptors.UserInterceptorFactory $ 1.processInvocation (UserInterceptorFactory.java:63)
2017 -10-31 20:32:18 ERROR stderr : 71 - org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
2017-10-31 20:32:18 오류 stderr : 71 - org에서 .jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation (ExecutionTimeInterceptor.java:43)
2017-10-31 20:32:18 오류 stderr : 71 - at org.jboss.invocation.InterceptorContext.proceed (InterceptorContext 된 .java 340)
2017년 10월 31일 20시 32분 18초 ERROR의 열려진 : 71 - org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation (sbin에의 vaptInterceptor.java:47)
2017-10-31 20:32:18 오류 stderr : 71 - org.jboss.invocation.InterceptorContext.proceed (InterceptorContext.java:340)
2017-10-31 20:32 18의 열려진 ERROR : 71 - org.jboss.invocation.InterceptorContext $ Invocation.proceed (InterceptorContext.java:437)
2017년 10월 31일 20시 32분 18초 ERROR의 열려진에서 : 71 - org.jboss.weld에서. ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke (AbstractEJBRequestScopeActivationInterceptor.java:64)

+0

내가 XML이없는 코드 블록 – SLaks

+0

로 XML을 게시하시기 바랍니다 ... jsonNode 데이터에서 목록을 만들 .. 난 나머지 데이터를 가져 오려는 종점 https://api.iextrading.com/1.0/ref-data/symbols/ 이것은 json 값을 반환하고 있습니다. 그래서 이미 내 모델 클래스를 추가했습니다. – user2413660

+0

어떤 도움을 주시겠습니까 .. – user2413660

답변

0

나는 동일한 문제가있었습니다. 그것은, 예상대로, 컨텐츠 형 반환하지 않은 서버에서 발생했다 : 응용 프로그램/JSON을하지만 반환

1)의 공급 업체에 문의 :

content-type: text/html; charset=UTF-8 

내가 두 가지 옵션 참조 서비스와 해당 응용 프로그램/JSON 요청 문자열로 요청의 결과를 읽고 수동으로 객체로 변환)

2

을 반환. 이 유사 : 이제

String jsonData = response.readEntity(String.class); 
ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper(); 
JsonNode jsonNode= mapper.readValue(jsonData, com.fasterxml.jackson.databind.JsonNode.class); 

,