2016-03-22 22 views
1

Verilenverisinden @Path verisine basit bir web servisi hazırladım. her şey düzgün çalışıyor @Produces(MediaType.APPLICATION_XML) kullanırken, ben XML çıktısını görebilirsiniz, ama MediaType.APPLICATION_JSON içine MediaType.APPLICATION_XML değiştirirken bu sorun görünür:Java EE 7 WebServices on Wildfly - JSON sorunu

Bağlam Yolu:/BMS

Servlet Yolu:/kaynaklar

Yolu Bilgisi :/actualvalue

Sorgu dizesi: boş

Yığın İzleme o javax.ws.rs.ext.Providers I Wildfly 10

[değiştir]

tarafından sağlanan org.jboss.spec:jboss-javaee-7.0:1.0.3-Final kullanımı

: rg.jboss.resteasy.spi.LoggableFailure: RESTEASY003880: İçerik tür veri bulunamadı

@Entity 
@Cacheable(false) 
@Table(name = "tblActualValueFloat") 
@XmlRootElement(name = "tblActualValueFloat") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class ActualValueFloat extends AbstractModel { 

     /*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/ 
     @Id 
     @Column(name = "PointSliceID") 
     @XmlElement(name = "PointSliceID", required = false, type = Integer.class) 
     private Integer id; 
     @Column(name = "ActualValue") 
     @XmlElement(name = "ActualValue", required = false, type = Double.class) 
     private Double value; 
     @Temporal(TemporalType.TIMESTAMP) 
     @Column(name = "UTCDateTime") 
     @XmlElement(name = "UTCDateTime", required = false, type = Date.class) 
     private Date date; 
     //setters and getters and equals 
} 

[edit2]

Tamam, bu GlassFish 4.1 ile çalışır, ancak Wildfly 10 ile .. Herhangi bir ipuçları nasıl temin kullanarak Java E tarafından Bundan kaçınmak için değil görüyoruz E Web Hizmetleri API'sı?

+0

Bu bağımlılıklar yeterli olacaktır:' javax: (maven javax.ws.rs-api': JavaEE-web api: 7.0' ve 'javax.ws.rs scope = her ikisi için de 'sağlanan'. Jboss spec bağımlılığına ihtiyacınız yok. – assylias

+0

@assylias Değiştirilmiş ve aynı sorun :( – Rafcik

+0

@GET yönteminin dönüş türü nedir? – assylias

cevap

0

Tamam, ben org.jboss.weld.osgi.examples olduğunu araştırdım kaynak-OSGi web FWK: CORS Başlıkları eklemek için bir filtre ile 1.2.0.Beta1, org.codehaus içeriyordu .jackson: jackson-jaxrs, bu yüzden o dışlanmış ve şimdi bile ben org.codehaus.jackson hariç zaman bu hata var 10

1

@Rafcik Wildfly düzgün çalışır: jackson-jaxrs:

A message body writer for Java class java.util.ArrayList, and Java type java.util.List<java.lang.String>, and MIME media type application/json was not found. 
The registered message body writers compatible with the MIME media type are: 
application/json -> 
    com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App 
    com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App 
    com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App 
*/* -> 
    com.sun.jersey.core.impl.provider.entity.FormProvider 
    com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider 
    com.sun.jersey.core.impl.provider.entity.StringProvider 
    com.sun.jersey.core.impl.provider.entity.ByteArrayProvider 

"Bağlamsal veri türü bulunamadı" hatası düzeltildi: javax.ws.rs.ext.P Aşağıdaki başlatılıyor kodu ekleyerek roviders":

ResteasyProviderFactory factory = ResteasyProviderFactory.getInstance(); 
ResteasyProviderFactory.pushContext(javax.ws.rs.ext.Providers.class, factory); 
ResteasyClientBuilder resteasyClientBuilder = new 
ResteasyClientBuilder().providerFactory(factory); 
ResteasyClient client = resteasyClientBuilder.build();